方法 : 同時実行エラーを処理する

更新 : 2007 年 11 月

DBConcurrencyException オブジェクトをキャッチして、同時実行違反により発生する問題の解決に活用できます。DBConcurrencyException オブジェクトは、エラーの原因となったデータ行を返します。詳細については、「DBConcurrencyException メンバ」を参照してください。

次の例では、エラーの原因となったデータ行の最初の列がエラー メッセージに表示される場合に、データ ソースを try/catch ブロック内の NorthwindDataSet の内容で更新することを試みます。

y8fyz6xy.alert_note(ja-jp,VS.90).gifメモ :

データベース更新エラーを処理するための 1 つの方法を次のコードに示します。このコードにおいては、データベースへの接続が存在すること、データセットが存在すること、および更新コマンドを実行すると同時実行違反が発生することを前提としています。詳細および完成したコード例については、「チュートリアル : 同時実行例外の処理」を参照してください。

同時実行違反を解決するには

  1. try/catch ブロック内からデータベースを更新するコマンドを実行します。

  2. 例外が発生したら、catch ステートメントの Row プロパティを調べて違反の原因を特定します。

  3. アプリケーションのビジネス ルールに基づいてエラーを解決するコードを追加します。

    次のコードでは、アプリケーションのアダプタとデータセットの例として、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...
    }
    

参照

概念

データの新機能

データの表示の概要

その他の技術情報

データに関するチュートリアル

Visual Studio でのデータへの接続

アプリケーションでデータを受け取る準備

アプリケーションへのデータのフェッチ

Windows アプリケーションのフォームでのデータの表示

アプリケーションでのデータ編集

データの検証

データの保存