首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决与DataTables在.NET中的并发冲突?

如何解决与DataTables在.NET中的并发冲突?
EN

Stack Overflow用户
提问于 2011-06-24 22:15:24
回答 1查看 1.3K关注 0票数 2

我正在使用DataTables在VB.NET 2.0中,我正在编写代码来处理我希望在多用户环境中发生的并发冲突。我知道如何捕获并发冲突,但我不知道如何在使用DbCommandBuilder生成的插入、更新和删除命令时解决这些问题。

在我看来,并发违规行为发生在五种不同的情况下:

当..。

更新database

  • Updating中并发更新的行,从database

  • Deleting中并发删除的行,在database

  • Deleting中并发更新的行,从database

  • Inserting中并发删除的行,该行的主键已并发插入数据库

我知道如何解决情况1;我找到了几个如何使用DataTable.Merge方法同步更新行的示例。然而,合并似乎不适用于其他4种情况。

例如,假设我试图更新数据库中并发删除的行(情景2),业务规则告诉我使用更新的列值将该行还原到数据库中。我不知道如何更改DataRow属性,以便Adapter.Update方法可以根据需要将行插入数据库;Merge没有这样做。

考虑到合并处理情景1的容易程度,我确信对于其他并发性违规也必须有简单的解决方案,而我只是忽略了它们。有人能给我一个正确的方向吗?

-TC

EN

回答 1

Stack Overflow用户

发布于 2011-06-24 22:27:55

如果要更新的行被另一个进程删除,并且需要还原,则需要捕获在尝试更新和响应时发生的并发异常,方法是将该行插入数据库:

保存更新后的值。database.

  • Insert

  • 将并发冲突合并到您的表中,这将删除在

  • 中删除的行--新行与保存的值一起放入表中。

  • 保存表。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6474323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档