处理DataGridView中的并发性异常

本文关键字:异常 并发 DataGridView 处理 | 更新日期: 2023-09-27 17:50:44

本文描述处理并发性异常。重现该问题的步骤如下:

    创建一个新的Windows应用程序项目。
  1. 根据Northwind Customers表创建一个新的数据集。
  2. 创建一个带有DataGridView的表单来显示数据
  3. 用Northwind数据库中Customers表中的数据填充数据集
  4. 填写完数据集后,使用Visual Studio中的Visual Database Tools直接访问Customers数据表并修改一条记录。
  5. 然后在表单上,将相同的记录更改为不同的值,更新数据集,并尝试将更改写入数据库,这会导致并发错误。
  6. 捕获错误,然后显示不同版本的记录,允许用户决定是继续更新数据库,还是取消更新。

我的问题是,为什么会发生这种情况?为什么我不能只是保存和编辑记录从DataGridView而不引起任何错误?我正在创建一个应用程序与DataGridView,我面临这个问题。我需要一些方法来避免或解决这个错误而不通知用户,所以无论他们在DataGridView中看到什么得到完全保存他们看到它的方式。这个错误的原因是什么?

处理DataGridView中的并发性异常

解决方案非常简单。

你所需要做的就是在每次保存之后重新加载数据到DataGridView中。

那么现在BindingNavigator保存按钮的代码是:

this.Validate();
this.maintableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.yourDataSet);
this.maintableTableAdapter.Fill(this.yourDataSet.yourtable);

我不知道为什么这工作,所以我需要一个专家来确认这一点。

感谢E-Bat给我灌输这个想法。