0

我一直在使用C# 和 Sql Server 2012 中的数据集开发一个 CRUD 应用程序。该项目基本上是一个议程,其中包含有关神奇宝贝的信息(名称、能力、类型、图像等)。几个月来,我一直面临与并发冲突有关的问题。换句话说,当我尝试删除或更新在同一程序执行期间添加的行时,会生成并发异常,并且无法在数据库中执行任何其他更改。所以我需要重新启动程序才能再次执行更改(重要提示:此异常仅发生在通过 C# 添加的新行)。我',但我找不到可以在 C# 的源代码中添加的任何内容。有谁知道如何处理这个?我应该在我的源代码中实现什么?SQL Server 中有什么可以帮助它的事情吗?

这是我的项目的链接,来自数据库的备份,主窗体的图像和数据库图:

http://www.mediafire.com/download.php?izkat44a0e4q8em(C#源代码)

http://www.mediafire.com/download.php?rj2e118pliarae2(Sql备份)

imageshack .us /a /img 708/38 23/pokmonform .png(主表格)

imageshack .us /a /img 18/95 46/kantopokdexdiagram .png(数据库图)

4

1 回答 1

0

我查看了您的代码,似乎您在数据表 daKanto 上不一致地使用 AcceptChanges。实际上你使用AcceptChangesDuringUpdate,这也很好,虽然我更喜欢datatable.AcceptChanges()在更新后显式调用方法,但你的方式也很好。无论如何,我注意到,您在 Delete_Click 和 Update__Click 方法中使用 AcceptChangesDuringUpdate,但不要在 Save_Click 中使用它,而且我认为您应该在 MainForm_Load 中使用 AcceptChangesDuringFill,您可以在其中填充数据集。我不能向您保证,这会有所帮助,但我知道整个应用程序中数据访问的一致性可以降低意外数据一致性错误的风险。

于 2012-12-14T21:58:47.750 回答