HOW TO:處理並行存取錯誤
更新:2007 年 11 月
您可以攔截 DBConcurrencyException 物件,以協助解決因為並行違規而產生的問題。DBConcurrencyException 物件會傳回造成錯誤的資料列。如需詳細資訊,請參閱 DBConcurrencyException 成員。
以下範例將嘗試從 try/catch 區塊內,以 NorthwindDataSet 的內容更新資料來源;如果引發錯誤時,就會顯示錯誤訊息以及衝突資料列的第一個資料行。
注意事項: |
---|
以下程式碼是處理資料庫更新錯誤的一種示範策略。此程式碼假設下列幾項條件:目前已連接到資料庫、目前有一個資料集,並假設執行更新命令會引發並行違規。如需詳細資訊和完整範例,請參閱逐步解說:處理並行存取例外狀況。 |
若要解決並行違規
從 try/catch 區塊中執行命令以更新資料庫。
如果引發例外狀況,請檢查 catch 陳述式的 Row 屬性,以判斷造成違規的原因。
根據您應用程式的商務規則 (Business Rule) 來加入解決錯誤的程式碼。
以下程式碼使用 CustomersTableAdapter 和 NorthwindDataSet 做為應用程式中的配接器和資料集之範例。
Try CustomersTableAdapter.Update(NorthwindDataSet) Catch ex As DBConcurrencyException Dim customErrorMessage As String customErrorMessage = "Concurrency violation" & vbCrLf customErrorMessage += CType(ex.Row.Item(0), String) MessageBox.Show(customErrorMessage) ' Add business logic code to resolve the concurrency violation... End Try
try { customersTableAdapter.Update(northwindDataSet); } catch (DBConcurrencyException ex) { string customErrorMessage; customErrorMessage = "Concurrency violation\n"; customErrorMessage += ex.Row[0].ToString(); // Add business logic code to resolve the concurrency violation... }