Я довольно много следил за статьей MSDN, http://msdn.microsoft.com/en-us/library/5ycd1034.aspx, чтобы добавить новую строку в таблицу. Это моя реализация, я включил только соответствующую часть:Ошибка первичного ключа при добавлении записи в базу данных
this.booksTableAdapter.ClearBeforeFill = true;
DataRow row = core.Tables["books"].NewRow();
row[0] = 1234567; //primary key
row[3] = book_name; //string
//add
core.Tables["books"].Rows.Add(row);
//update
booksTableAdapter.Update(core); //generates error
При выполнении я получаю «[ODBC Microsoft Access Driver]: индекс или первичный ключ не может содержать нулевое значение» , несмотря на явно устанавливая основной ключ. Ошибка такая же, если я не устанавливаю первичный ключ. Я всегда предполагал, что Access автоматически генерирует первичный ключ независимо от моего кода. Как я могу исправить эту ошибку? Спасибо за любые ответы.
Проверьте таблицу базы данных с помощью MS Access и убедитесь, что ваш первичный ключ составлен только из поля в позиции 0 – Steve
. Ваш pk может быть составным, состоящим из нескольких столбцов. – mcy
Первичный ключ - это длинное целое число, генерируемое случайным образом. – FatCat