並行違規


作者: | 2008/07/13 | 留言


接續上篇的練習,在新增一筆記錄後按”更新”按鈕,記錄的確會被寫回資料庫,但隨即刪除這筆記錄後再按”更新”,另一個錯誤就可能出現了:

對於初次見到這個訊息的我而言,我只能感覺到設計這行字的工程師真是天才,試問誰能一眼就了解這是錯在哪呢…

並行違規的問題似乎是因為第一個存取記錄的人把資料取回應用程式後,在要寫回資料庫時,由於第二個人已改變記錄了,因此造成二個以上的人同時編輯記錄,結果產生並行違規。在這個範例中,第二個人就是你自己。

簡單的解決方式是針對此情況對使用者發出提示,可以使用DBConcurrencyException來得知並行違規的問題發生了(處理並行存取錯誤的說明),確定要寫入就再做一次Fill及AcceptChanges(),不過最適當的方式還是要視專案情況(不同的商業邏輯)來解決:


標籤:

分類:

本文作者是Audi Lu

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

*

*

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料