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

这是为什么啊,求在神指教... 这是为什么啊,求在神指教 展开
 我来答
百度网友66a8d48e5
推荐于2017-12-15 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3846万
展开全部
说你在一中插入了重复键(Primary key)是主键约束,一般情况下出现以下几种情况:

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

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

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

其实在同一事务中的两次插入,可能是插入到物理表,也可能是在程序实体集中插入,总之不管哪种情况都是出现相同的结果。
神界苍生
2013-06-30
知道答主
回答量:27
采纳率:100%
帮助的人:13.8万
展开全部
1.打开dbms查看数据表的数据,再次确保数据主键无重复
2.考虑是不是存过或者是T-sql语句复杂执行过慢,你的连续的点击操作导致重复提交
3.或许你一直在dbms查看数据界面,把表重新执行一下查看最新数据显示
这个异常既然抛出,数据库绝对有当前键的存在。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
他花花吐蕊开开7403
2013-06-30 · 超过37用户采纳过TA的回答
知道答主
回答量:383
采纳率:0%
帮助的人:207万
展开全部
仔细检查一下,以前我也遇到过这种情况,蛋疼了好久,最后发现语句末尾多了一句代码,导致主键被插入了两次,逐句排查一下,机器是不会说谎的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2013-06-30 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4334万
展开全部
留联系看!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式