次の方法で共有


DataSet.GetChanges メソッド (DataRowState)

前回 DataSet を読み取るか、 AcceptChanges を呼び出した以降にこのデータセットに対して行われたすべての変更が格納されているこのデータセットのコピーを、 DataRowState によってフィルタ処理した後で取得します。

Overloads Public Function GetChanges( _
   ByVal rowStates As DataRowState _) As DataSet
[C#]
public DataSet GetChanges(DataRowStaterowStates);
[C++]
public: DataSet* GetChanges(DataRowStaterowStates);
[JScript]
public function GetChanges(
   rowStates : DataRowState) : DataSet;

パラメータ

戻り値

アクションを実行した後、 Merge を使用して元のデータセットにマージするために使用できる、 DataSet のフィルタ処理後のコピー。必要な DataRowState の行が見つからない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。

解説

GetChanges メソッドを使用して、元のオブジェクトの変更だけを格納する 2 つ目の DataSet オブジェクトを作成します。引数 rowStates を使用して、この 2 つ目のオブジェクトに格納する変更の種類を指定します。

この返されたコピーは、元の DataSet にマージされるよう設計されています。リレーションシップ制約があるために、Unchanged マークが付けられた親行が含まれる場合があります。必要な DataRowState の行が見つからない場合は、 GetChanges メソッドが null 参照 (Visual Basic では Nothing) を返します。

使用例

[Visual Basic, C#, C++] GetChanges メソッドを使用して、データ ソースの更新に使用する 2 番目の DataSet オブジェクトを作成する例を次に示します。

 
Private Sub UpdateDataSet(ByVal myDataSet As DataSet)
   ' Check for changes with the HasChanges method first.
   If Not myDataSet.HasChanges(DataRowState.Modified) Then Exit Sub
   ' Create temporary DataSet variable.
   Dim xDataSet As DataSet
   ' GetChanges for modified rows only.
   xDataSet = myDataSet.GetChanges(DataRowState.Modified)
   ' Check the DataSet for errors.
   If xDataSet.HasErrors Then
      ' Insert code to resolve errors.
   End If
   ' After fixing errors, update the data source with the DataAdapter 
   ' used to create the DataSet.
   myOleDbDataAdapter.Update(xDataSet)
End Sub

[C#] 
private void UpdateDataSet(DataSet myDataSet){
   // Check for changes with the HasChanges method first.
   if(!myDataSet.HasChanges(DataRowState.Modified)) return;
   // Create temporary DataSet variable.
   DataSet xDataSet;
   // GetChanges for modified rows only.
   xDataSet = myDataSet.GetChanges(DataRowState.Modified);
   // Check the DataSet for errors.
   if(xDataSet.HasErrors){
      // Insert code to resolve errors.
   }
   // After fixing errors, update the data source with the DataAdapter 
   // used to create the DataSet.
   myOleDbDataAdapter.Update(xDataSet);
}

[C++] 
private:
 void UpdateDataSet(DataSet* myDataSet){
    // Check for changes with the HasChanges method first.
    if(!myDataSet->HasChanges(DataRowState::Modified)) return;
    // Create temporary DataSet variable.
    DataSet* xDataSet;
    // GetChanges for modified rows only.
    xDataSet = myDataSet->GetChanges(DataRowState::Modified);
    // Check the DataSet for errors.
    if(xDataSet->HasErrors){
       // Insert code to resolve errors.
    }
    // After fixing errors, update the data source with the DataAdapter 
    // used to create the DataSet.
    myOleDbDataAdapter->Update(xDataSet);
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

DataSet クラス | DataSet メンバ | System.Data 名前空間 | DataSet.GetChanges オーバーロードの一覧 | GetChanges