当前位置:编程学习 > C#/ASP.NET >>

违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条

UpdateCommand和DeleteCommand出现DBConcurrencyException异常。调试提示:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条;或   违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条。 
这里的违反并发性:不是指多人编辑引起的并发。

问题原因:

在插入、更新或删除操作过程中当受影响的行数等于零时由 DataAdapter 引发的异常。

可能的解决方法:

1 检查是否设有主键。

2 DeleteCommand的问题:检查是否含有自动编号字段(Access的自动编号字段可能会引发此异常);

   UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)。
但是:
像DUWAMISH里面的 先建一张空表.然后将数据库里的值ADD进去,然后修改状态为编辑.

这样的情况下 DS的original行全部为空的 这样一定引发上面的问题,这种情况这么处理呢?
--------------------编程问答-------------------- 预防并发性问题的 解决方案一般是使用事务来锁住表,不让并发事件发生,直到事件完成.

你说的事例其实是三个事务 建表,新增, 修改 
如果你的目的只是新增一条数据:则就是一个事务了!


--------------------编程问答-------------------- 学习,如何lock table? --------------------编程问答-------------------- http://www.ziliaonet.com/tech/netprogramme/aspnet/200607/136228.html --------------------编程问答-------------------- 将DbCommandBuilder.ConflictOption 属性设置为OverwriteChanges可使生成的Update和Delete语句仅包含主键。 --------------------编程问答-------------------- 以前在MSDN论坛上曾看到,专家说改用TableAdapter更新数据表:http://msdn.microsoft.com/zh-cn/library/bz9tthwx(VS.80).aspx --------------------编程问答-------------------- 查看你的操作是否修改了主键的值,使得提交的数据中有重复的主键
建议在显示数据时不要显示主键,以便不小心改到了
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,