C#插入数据时提示违反了PRIMARY KEY约束,不能在表中插入重复键,,但是我插入的键的确是表中没有的啊

这是为什么啊,求在神指教

说你在一中插入了重复键(Primary key)是主键约束,一般情况下出现以下几种情况:

物理表中插入了重复的键。
查看数据库,待插入表确实存在了已经存在的主键,所以不能够重复插入。

程序实体集中插入了重复键。
这个比较难查一些,一般是在程序中使用了dataset/datatable或实体集(linq to sql,EF技术)而插入时是先手入到实体集,由实体集向数据库更新数据,实现持久。在相应的datatable中插入了重复的键也是不可行的!

在同一事务中存在的两次插入。
写程序时不小心,在同一事务中两次插入,自然会引起主键约束,而错误后进行了回滚,导致一个也插入不了。在非事务中,则会插入一条,二次插入时报错。

其实在同一事务中的两次插入,可能是插入到物理表,也可能是在程序实体集中插入,总之不管哪种情况都是出现相同的结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-30
1.打开dbms查看数据表的数据,再次确保数据主键无重复
2.考虑是不是存过或者是T-sql语句复杂执行过慢,你的连续的点击操作导致重复提交
3.或许你一直在dbms查看数据界面,把表重新执行一下查看最新数据显示
这个异常既然抛出,数据库绝对有当前键的存在。
第2个回答  2013-06-30
仔细检查一下,以前我也遇到过这种情况,蛋疼了好久,最后发现语句末尾多了一句代码,导致主键被插入了两次,逐句排查一下,机器是不会说谎的
第3个回答  2013-06-30
留联系看!
相似回答