簡體   English   中英

在DataGridView中處理並發異常

[英]Handling concurrency exceptions in DataGridView

本文在此介紹了處理並發異常。 重現此問題的步驟是:

  1. 創建一個新的Windows應用程序項目。
  2. 基於羅斯文客戶表創建一個新的數據集。
  3. 創建一個帶有DataGridView的表單以顯示數據。
  4. 使用Northwind數據庫中“客戶”表中的數據填充數據集。
  5. 填充數據集后,使用Visual Studio中的Visual Database Tools直接訪問“客戶”數據表並更改記錄。
  6. 然后在表單上,​​將同一條記錄更改為不同的值,更新數據集,然后嘗試將所做的更改寫入數據庫,這將引發並發錯誤。
  7. 捕獲錯誤,然后顯示記錄的不同版本,使用戶可以確定是繼續並更新數據庫,還是取消更新。

我的問題是,為什么會發生這種情況? 為什么不能只從DataGridView保存和編輯記錄而不會引起任何錯誤? 我正在使用DataGridView創建應用程序,並且遇到了這個問題。 我需要某種方法來避免或解決此錯誤而不通知用戶,因此,無論他們在DataGridView中看到的內容如何,​​都將按照您看到的方式進行保存。 該錯誤的原因是什么?

事實證明該解決方案非常簡單。

您需要做的就是在每次保存后再次將數據重新加載到DataGridView中。

因此,BindingNavigator保存按鈕的代碼現在為:

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

我不知道為什么會這樣,所以我需要專家確認。 工作解決方案。

感謝E-Bat將這個想法植入我的腦海。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM