2013-09-27 2 views
-1

Я довольно много следил за статьей 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 автоматически генерирует первичный ключ независимо от моего кода. Как я могу исправить эту ошибку? Спасибо за любые ответы.

+0

Проверьте таблицу базы данных с помощью MS Access и убедитесь, что ваш первичный ключ составлен только из поля в позиции 0 – Steve

+0

. Ваш pk может быть составным, состоящим из нескольких столбцов. – mcy

+0

Первичный ключ - это длинное целое число, генерируемое случайным образом. – FatCat

ответ

-1

Спасибо за ваш быстрый ответ. Было более одного первичного ключа (созданного по ошибке). Я удалил ненужный второй pk, и он отлично работает.

Смежные вопросы