尝试使用Update()方法在我的数据库时,会出现DBConcurrencyException问题。我有一个具有自动递增的ID列的数据库中的表,并在我的C#程序数据表,从该表中(包括当我使用MissingSchemaAction = MissingSchemaAction.AddWithKey自动增量部分)来获取信息。DataTable的同步功能自动增量列使用数据库
如果我创建行并将其添加到数据表,数据表自动填写自动增量ID列(其中启动数据库表不放过)对我来说,这是很好的。但是,如果我删除刚刚添加的行(不先使用Update())并添加新行,则数据表autoincrement列将填充一个基于DATATABLE位置的值,而不是数据库所在的位置,这就是为什么我得到并发性错误。
例如:
在数据库中的表有这些记录:
1 Apple
2 Orange
3 Pear
它获取复制到数据表中,所以当我添加一个新行名为值“葡萄”我得到:
1 Apple
2 Orange
3 Pear
4 Grape
这很好,但如果不运行Update()方法,我删除了葡萄行并添加新行“甜瓜”我得到:
1 Apple
2 Orange
3 Pear
5 Melon
当我尝试运行Update()时,数据库期望4是下一个自动增量值,而是变为5.所以我得到错误。当用户点击一个“保存”按钮时,会发生Update(),所以理想情况下,我希望他们能够在最终保存前做出如上所示的大量更改,但是保持并发性的唯一方法是使用Update( )每行添加/删除后?
哪个数据库? –
MySQL数据库,对不起,我没有提到的是,更新()是DataAdapter的方法来获取信息从数据库中。 – NikonTC