Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将记录添加到数据库时出现主键错误_C#_Database_Winforms_Ms Access_Odbc - Fatal编程技术网

C# 将记录添加到数据库时出现主键错误

C# 将记录添加到数据库时出现主键错误,c#,database,winforms,ms-access,odbc,C#,Database,Winforms,Ms Access,Odbc,我基本上关注了MSDN上的文章, 向表中添加新行的步骤。这是我的实现,我只包含了相关部分: this.booksTableAdapter.ClearBeforeFill = true; DataRow row = core.Tables["books"].NewRow(); row[0] = 1234567; //primary key row[3] = book_name;

我基本上关注了MSDN上的文章, 向表中添加新行的步骤。这是我的实现,我只包含了相关部分:

        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驱动程序]: 索引或主键不能包含空值'
尽管显式设置了主键。如果未设置主键,则错误相同。我一直认为Access会自动生成主键,而不管我的代码是什么。如何修复此错误?感谢您的回复。

谢谢您的快速回复。有多个主键(错误创建)。我删除了不必要的第二个主键,它工作正常。

使用MS Access检查数据库表,确认主键仅由位置0处的字段组成。主键可以是复合主键,由多个列组成。主键是随机生成的长整数。