次の方法で共有


方法 : 特定のバージョンの DataRow を取得する

 

発行: 2016年7月

データ行を変更すると、データセットにその行の元のバージョン (Original) と新しいバージョン (Current) が保存されます。 たとえば、AcceptChanges メソッドを呼び出す前にレコードの別のバージョン (DataRowVersion 列挙定数で定義) にアクセスし、そのバージョンに応じて変更を処理できます。

注意

別のバージョンの行が存在するのは、その行を編集してから AcceptChanges メソッドを呼び出すまでの間です。AcceptChanges メソッドの呼び出し後は、現在のバージョンと元のバージョンが同じになります。

DataRowVersion 値を列インデックス (文字列である列名) と共に渡すと、その列の特定の行バージョンから値が返されます。 変更された列は ColumnChanging イベントおよび ColumnChanged イベント中に識別されるため、検証の目的で行バージョンの違いを簡単に調べることができます。 ただし、一時的に制約を中断しているときはこれらのイベントは発生しないため、変更された列をプログラムで識別する必要があります。 Columns コレクションを反復処理し、異なる DataRowVersion 値を比較することにより変更された列を識別できます。

DataRow の元のバージョンへのアクセス

レコードの元のバージョンを取得するには

  • 取得する行の DataRowVersion を渡して列の値にアクセスします。

    DataRowVersion 値を使って、DataRow の CompanyName フィールドの元の値を取得する例を次に示します。

    string originalCompanyName;
    originalCompanyName = northwindDataSet1.Customers[0]
        ["CompanyName", DataRowVersion.Original].ToString();
    
    Dim originalCompanyName = NorthwindDataSet1.Customers(0)(
       "CompanyName", DataRowVersion.Original).ToString()
    

DataRow の現在のバージョンへのアクセス

レコードの現在のバージョンを取得するには

  • 列の値にアクセスし、取得する行のバージョンを示すインデックスに対するパラメーターを追加します。

    DataRowVersion 値を使って、DataRow の CompanyName フィールドの現在の値を取得する例を次に示します。

    string currentCompanyName;
    currentCompanyName = northwindDataSet1.Customers[0]
        ["CompanyName", DataRowVersion.Current].ToString();
    
    Dim currentCompanyName = NorthwindDataSet1.Customers(0)(
        "CompanyName", DataRowVersion.Current).ToString()
    

参照

アプリケーションでのデータ編集
データの検証
データの保存
データに関するチュートリアル
Visual Studio でのデータへの Windows フォーム コントロールのバインド
Visual Studio のデータ アプリケーションの概要
Visual Studio でのデータへの接続
アプリケーションでデータを受け取る準備
アプリケーションへのデータのフェッチ
Visual Studio でのデータへのコントロールのバインド