gpt4 book ai didi

mysql - 在 Ado.Net 更新中事务为 "Concurrency violation"

转载 作者:行者123 更新时间:2023-11-29 14:39:05 24 4
gpt4 key购买 nike

我使用 MySQL 5.5、C#、ADO.NET、DataSet 进行写作。我有一个 DataSet 和 DataAdapter 填充它。在 DataAdapter 中,我重写 INSERT、UPDATE、DELETE 命令。当我使用存储过程(如这些命令)时,一切都很好。但是,当我在此存储过程中使用 transactionns 时,出现异常:

Concurrency violation: the DeleteCommand affected 0 of the expected 1 records.

对于这个错误我该怎么办?

示例:http://dl.dropbox.com/u/46828938/DataGridSample.zip

要重现该问题:从数据网格中删除行并按“更新”按钮。

DBConcurrencyException ("Concurrency violation: the DeleteCommand affected 0 of the expected 1 records.") reproduce on:"productDataAdapter.Update(dataSet, "Products");" string.

最佳答案

我学习了很多关于这个问题的文档(msdn、mysql 论坛、stackoverflow 等)并查看:

检查实际并发性或无法执行其他查询:

  1. 插入:获取最后插入的行并与插入的行进行比较。
  2. 更新:获取更新的行(例如通过键)并与更新的行进行比较。
  3. 删除:尝试获取行(例如通过键)并获取 null。

当然,所有上述比较都需要在一个逻辑槽/连接等中进行。不幸的是,不存在其他方式检查“MySql 上是否存在并发冲突”。(与其他数据库服务器不同)。

我希望这些信息对某人有所帮助。

关于mysql - 在 Ado.Net 更新中事务为 "Concurrency violation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com