2013-09-27 99 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驱动程序]: 索引或主键不能包含Null值” 尽管明确设置主键。如果我不设置主键,错误是相同的。我总是认为无论我的代码如何,Access都会自动生成主键。我该如何解决这个错误?感谢您的回复。

+0

使用MS Access检查您的数据库表,并确认您的主键仅由0位的字段组成 – Steve

+0

您的pk可能是一个由多列组成的复合主键 – mcy

+0

主键是随机生成的长整数。 – FatCat

回答

-1

感谢您的迅速反应。有多个主键(由错误创建)。我删除了不必要的第二个PK,它工作正常。

相关问题