我在VB.NET 2.0中使用DataTables,我正在编写代码来处理我期望在多用户环境中发生的并发冲突。我理解如何捕获并发冲突,但我不明白如何在使用DbCommandBuilder生成的INSERT,UPDATE和DELETE命令时解决它们。
在我看来,并发违规发生在五种不同的情况下:
当...
我知道如何解决问题1;我找到了几个如何使用DataTable.Merge方法同步更新行的示例。但是,Merge似乎不适用于其他4种情况。
例如,假设我正在尝试更新已从数据库同时删除的行(情况2),并且我的业务规则告诉我使用更新的列值将行还原到数据库中。我无法弄清楚如何更改DataRow属性,以便Adapter.Update方法将行根据需要插入数据库;合并不会这样做。
考虑到Merge处理情况1的难易程度,我确信必须对其他并发冲突进行简单的解决,我只是忽略了它们。任何人都可以向我提供正确的方向吗?
-TC
答案 0 :(得分:0)
如果您尝试更新的行被另一个进程删除,并且您需要将其还原,那么您需要捕获当您尝试通过将该行插回数据库进行更新和响应时发生的并发异常: