Sql 更新和删除新添加的行时并发冲突

Sql 更新和删除新添加的行时并发冲突,sql,sql-server,c#-4.0,concurrency,Sql,Sql Server,C# 4.0,Concurrency,我一直在使用C#和Sql Server 2012中的数据集开发CRUD应用程序。该项目基本上是一个议程,包含关于神奇宝贝的信息(名称、习惯、类型、图像等)。 几个月来,我一直面临着一个与并发冲突相关的问题。换句话说,当我尝试删除或更新在程序执行期间刚刚添加的行时,会生成并发异常,并且不可能在数据库中执行任何其他更改。因此,我需要重新启动程序,以便能够再次执行更改(重要注意:此异常仅发生在通过C#添加的新行上)。 我一直在寻找解决此冲突的方法(不使用实体框架或LINQ to SQL),但我找不到任

我一直在使用C#和Sql Server 2012中的数据集开发CRUD应用程序。该项目基本上是一个议程,包含关于神奇宝贝的信息(名称、习惯、类型、图像等)。 几个月来,我一直面临着一个与并发冲突相关的问题。换句话说,当我尝试删除或更新在程序执行期间刚刚添加的行时,会生成并发异常,并且不可能在数据库中执行任何其他更改。因此,我需要重新启动程序,以便能够再次执行更改(重要注意:此异常仅发生在通过C#添加的新行上)。 我一直在寻找解决此冲突的方法(不使用实体框架或LINQ to SQL),但我找不到任何可以添加到C#源代码中的内容。有人知道怎么处理吗?我应该在源代码中实现什么?在SQL Server中有什么可以帮助您的吗

以下是指向我的项目、数据库备份、主窗体图像和数据库图表的链接:

(C#源代码)

(Sql备份)

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


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

我查看了您的代码,似乎您在数据表daKanto上使用AcceptChanges时不一致。事实上,您使用了AcceptChangesDuringUpdate,这也很好,尽管我更喜欢在更新后明确地调用方法
datatable.AcceptChanges()
,但您的方法也很好。 无论如何,我已经注意到,您在方法Delete\u Click和Update\u Click中使用AcceptChangesDuringUpdate,但在Save\u Click中不使用它,而且我认为您应该在MainForm\u Load中使用AcceptChangesDuringFill,在这里填充数据集。
我不能向您保证这会有所帮助,但我知道整个应用程序中数据访问的一致性降低了意外数据一致性错误的风险。

您得到的确切错误消息是什么?如果可能,包括整个堆栈跟踪。另外,您使用的事务隔离级别是什么?“System.Data.DBConcurrencyException:并发冲突:DeleteCommand影响了预期的1条记录中的0条。位于System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEvents RowUpdateEvent,BatchCommandInfo[]batchCommands,Int32 commandCount)位于System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdateDevenTargets RowUpdateEvent,BatchCommandInfo[]batchCommands,Int32 commandCount)的System.Data.Common.DbDataAdapter.Update(DataRow[]dataRows,DataTableMapping tableMapping)的System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable DataTable,DataTableMapping tableMapping)在System.Data.Common.DbDataAdapter.Update(DataSet DataSet,String srcTable)在Pokémon.MainForm.Delete_单击(对象发送方,事件参数e)在D:\Desktop\Pokémon 4.0\Pokémon\Pokémon\MainForm.cs:第318行实际上,我没有使用任何具有隔离级别的查询…我应该实现一些包含提交和回滚操作的存储过程吗?我尝试了您的提示,但效果不好。我添加了选项“daKanto.ContinueUpdateOnError=true;”,并发异常被忽略别乱扔。你觉得怎么样?我对这个项目会不会有问题?非常感谢!