当我使用以下代码插入数据时,我看到了异常。我该怎么办?
代码:
Movie_List_DBDataContext Movie_list1 = new Movie_List_DBDataContext();
Actor act = new Actor();
act.Actor_Name = Acttxt.Text;
Movie_list1.Actors.InsertOnSubmit(act);
Movie_list1.SubmitChanges();
例外:
违反PRIMARY KEY约束'PK_Actors'。无法在对象'dbo.Actors'中插入重复键。
我的桌子有两列; ID和名称,ID是主键。
答案 0 :(得分:6)
在.dbml
设计器中,确保ID
字段标记为“自动生成的值”。您可以在该字段的属性视图中找到它。
通常,这会根据数据库中的表进行初始化,因此,如果在数据库中将ID设置为自动生成的值,设计器将自动将“自动生成的值”设置为true。
您还可以在代码中将所需字段标记为“自动生成的值”。
在后面生成的代码中搜索ID
属性,并在Column
属性中设置值:IsDbGenerated=true
答案 1 :(得分:3)
您是否在Actor-table中将“ID”设置为标识字段?如果你还没有,快速搜索谷歌或堆栈溢出将告诉你如何。还要确保在ID列的设计器文件中设置了autogenerate属性。
答案 2 :(得分:1)
您希望自动生成ID。如果是这种情况,请确保设计器中的属性设置正确。一旦正确配置了列,最简单的方法是从设计器中删除表,然后将其添加回来。它应该在字段上获取identity属性并对其进行配置,以便在添加记录时不会尝试插入它。当然,如果您没有在表中将其设置为标识属性,则需要首先执行此操作,或者想出一种方法来生成id,并在执行插入之前为其分配唯一值。