Я написал программу на основе форм на C #, которая использует базу данных MS Access для хранения своих данных.
В файле MDB у меня есть одна таблица с именем __item__
в таблице есть 7 полей, первое из которых называется __item_id__
, и это автоматический индексатор таблицы, поэтому, когда я добавляю новую запись, она должна автоматически увеличиваться каждый раз, поэтому у меня не будет 2 записей с тот же идентификатор.
В программе я использую следующий код (это не полный код, а только соответствующий):
using System.Data.OleDb;
private OleDbConnection con; // create connection
private OleDbCommand cmd; // create command
con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\\library0.1\\DB.mdb");
cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO Item VALUES (@item_name, @creator_name,@publishing_name,@item_type,@genre,@year_publication);";
con.Open(); // open the connection
cmd.ExecuteNonQuery();
con.Close();
этот код выдаст мне ошибку __ExecuteNonQuery__
, утверждая, что у меня слишком мало полей.
Он хочет, чтобы я ввел __item_id__
вручную, например:
cmd.CommandText = "INSERT INTO Item VALUES (@item_id, @item_name, @creator_name,@publishing_name,@item_type,@genre,@year_publication);";
Как можно избежать ручного ввода и сделать так, чтобы программа автоматически индексировала item_id
для каждой новой записи?