方法 : 変更された行を取得する
更新 : 2007 年 11 月
データ テーブル内の各行には RowState プロパティがあり、ここにその行の現在の状態が DataRowState 列挙型の値として記録されています。DataSet または DataTable の GetChanges メソッドを呼び出すと、データセットまたはデータ テーブルから変更された行を返すことができます。GetChanges を呼び出す前に、データセットの HasChanges メソッドを呼び出すことにより、変更された行があることを確認できます。HasChanges の詳細については、「方法 : 変更された行をチェックする」を参照してください。
メモ : |
---|
AcceptChanges メソッドを呼び出してデータセットまたはデータ テーブルへの変更をコミットすると、GetChanges メソッドでデータは返されなくなります。変更された行をアプリケーションで処理する必要がある場合は、処理を終えてから AcceptChanges メソッドを呼び出す必要があります。 |
データセットまたはデータ テーブルの GetChanges メソッドを呼び出すと、変更された行 (レコード) だけを含む新しいデータセットまたはデータ テーブルが返されます。特定のレコード (新しいレコードや変更されたレコードなど) だけを取得する場合は、DataRowState 列挙型の値をパラメータとして GetChanges メソッドに渡すことができます。
DataRowVersion 列挙値を使って、行のさまざまなバージョンにアクセスできます (たとえば、行を処理する前に元の値を確認する場合など)。
変更されたすべてのレコードをデータセットから取得するには
データセットの GetChanges メソッドを呼び出します。
changedRecords という新しいデータセットを作成し、dataSet1 という別のデータセットから変更された行をすべて取得する方法を次の例に示します。
Dim changedRecords As DataSet = DataSet1.GetChanges()
DataSet changedRecords = dataSet1.GetChanges();
変更されたすべてのレコードをデータ テーブルから取得するには
DataTable の GetChanges メソッドを呼び出します。
changedRecordsTable という新しいデータ テーブルを作成し、dataTable1 という別のデータ テーブルから変更された行をすべて取得する方法を次の例に示します。
Dim changedRecordsTable As DataTable = dataTable1.GetChanges()
DataTable changedRecordsTable = dataTable1.GetChanges();
特定の行状態にあるすべてのレコードを取得するには
DataRowState 列挙型の値を引数として、データセットまたはデータ テーブルの GetChanges メソッドを呼び出します。
addedRecords という名前の新しいデータセットを作成し、dataSet1 データセットに追加されたレコードだけを読み込む方法を次に示します。
Dim addedRecords As DataSet = DataSet1.GetChanges(DataRowState.Added)
DataSet addedRecords = dataSet1.GetChanges(DataRowState.Added);
次の例は、Customers テーブルに最近追加されたすべてのレコードを取得する方法を示しています。
Private Function GetNewRecords() As NorthwindDataSet.CustomersDataTable Return CType(NorthwindDataSet1.Customers.GetChanges(Data.DataRowState.Added), _ NorthwindDataSet.CustomersDataTable) End Function
private NorthwindDataSet.CustomersDataTable GetNewRecords() { return (NorthwindDataSet.CustomersDataTable) northwindDataSet1.Customers.GetChanges(DataRowState.Added); }