Я могу вставить новую строку данных в свою таблицу MS Access ("Table1"
) из настольного приложения (C #, WinForms), но не могу понять, как вернуть значение первичного ключа ("UniqueID"
) для вновь добавленной строки. Я использую OleDbConnection для выполнения всех моих запросов. Я пытался использовать предложение OUTPUT, показанное ниже, а также SCOPE_IDENTITY (), чтобы вернуть значение, но я получаю только исключение: «Синтаксическая ошибка в инструкции INSERT INTO».
Я видел много примеров того, каксделать это с помощью SQL Server, но возможно ли вернуть значение первичного ключа с помощью Access и OleDbConneciton?
int PrimaryKey;
using (OleDbConnection Connection = new OleDbConnection(CONNECTION_STRING))
{
Connection.Open();
OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;
Command.CommandText = String.Format(
"INSERT INTO Table1 (JobNumber, ItemNumber) " +
"OUTPUT INSERTED.UniqueID " +
"VALUES (@jobnumber, @itemnumber)");
Command.Parameters.AddRange(new OleDbParameter[]
{
new OleDbParameter("@jobnumber", JobNumber),
new OleDbParameter("@itemnumber", ItemNumber)
});
PrimaryKey = Convert.ToInt32(Command.ExecuteScalar());
}