违反并发性

genius_ly 2009-03-27 09:32:56
datagridview绑定了一个数据源,在删除一条数据保存后,再删除或修改数据,然后在保存,就会报如下错误:
违反并发性:DeleteCommand 影响了预期 1 条记录中的 0 条 或 UpdateCommand 影响了预期 1 条记录中的 0 条
请问如何解决或避免这个问题?
...全文
210 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
genius_ly 2009-03-31
  • 打赏
  • 举报
回复
风语者,数据没有被删除,因为我发现了这个我问题之后就写了一段相同的代码在自己的电脑上做测试。
zzxap 2009-03-31
  • 打赏
  • 举报
回复
因为你在修改的时候,别人已经把这条数据删除了
genius_ly 2009-03-31
  • 打赏
  • 举报
回复
在删除一条数据保存后,
--这里重新绊定数据???

是直接绑定内存中的dataset还是重新填充dataset后再绑定呢?
如果是直接绑定内存中的dataset的话,还是报一样的错哦;如果是重新填充dataset后再绑定,那么这样对效率来说是不是一种损失呢?
genius_ly 2009-03-30
  • 打赏
  • 举报
回复
在删除一条数据保存后,
--这里重新绊定数据???

是直接绑定内存中的dataset还是重新填充dataset后再绑定呢?
如果是直接绑定内存中的dataset的话,还是报一样的错哦;如果是重新填充dataset后再绑定,那么这样对效率来说是不是一种损失呢?
tmd456 2009-03-29
  • 打赏
  • 举报
回复
在删除一条数据保存后,
--这里重新绊定数据
genius_ly 2009-03-29
  • 打赏
  • 举报
回复
没有人知道了吗?请大家帮忙。
simonezhlx 2009-03-29
  • 打赏
  • 举报
回复
产生并发冲突的可能很多,其中可能的一种是有多个可能的更新发生,而当数据查询回来之后,有新的更新发生了,所以在提交更新时,发现数据库中的内容与查询到本地的不一致无法完成操作.
genius_ly 2009-03-28
  • 打赏
  • 举报
回复
老鼠爱上猫,我试过你的代码,还是报一样的错。

用的SQL server数据库,Northwind数据库中的Customers表
在绑定数据源之后,设置了主键,更新删除的时候也都是根据主键来的
Terran5 2009-03-27
  • 打赏
  • 举报
回复
问题很明了,出在这几个地方,
你是不是设置主键了,删除的时候是否根据主键删除
更新的时候是不是传Null了,如果你用的是Oracle数据库那么要指定数据类型。
老鼠爱上猫 2009-03-27
  • 打赏
  • 举报
回复
定义变量
private OleDbCommandBuilder CommandBuilder = new OleDbCommandBuilder();
private OleDbDataAdapter oda = new OleDbDataAdapter();

//数据初始化
OleDbCommandBuilder CommandBuilder = new OleDbCommandBuilder(this.Conoda);
this.oda.Fill(this.ds, this.strTableName);

//保存按扭里
this.CommandBuilder.RefreshSchema();
this.oda.UpdateCommand = this.CommandBuilder.GetUpdateCommand();
this.oda.InsertCommand = this.CommandBuilder.GetInsertCommand();
this.oda.DeleteCommand = this.CommandBuilder.GetDeleteCommand();

this.oda.Update(this.ds, this.strTableName);
//oda.Update(ds.Tables[0].GetChanges());
ds.AcceptChanges();
老鼠爱上猫 2009-03-27
  • 打赏
  • 举报
回复
问题原因:
在插入、更新或删除操作过程中当受影响的行数等于零时由 DataAdapter 引发的异常。

可能的解决方法:

1 检查是否设有主键。

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

UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧