DataSet.AcceptChanges メソッド:
この DataSet が読み込まれてから、または最後に AcceptChanges が呼び出された後に行われたすべての変更をコミットします。 D DataRow クラスと DataTable クラスには AcceptChanges メソッドがあります。 DataTable レベルで AcceptChanges を呼び出すと、呼び出される DataRow ごとに AcceptChanges メソッドが呼び出されます。 同様に、DataSet で AcceptChanges を呼び出すと、DataSet 内のすべてのテーブルで AcceptChanges が呼び出されます。 そのため、メソッドを複数のレベルで呼び出すことができます。 DataSet の AcceptChanges を呼び出すと、すべてのセカンダリ オブジェクト (テーブルや行など) に対してメソッドを 1 回呼び出すことができます。
DataSet で AcceptChanges が呼び出されると、まだ編集モードにある DataRow オブジェクトは編集を正常に終了します。 各 DataRow の RowState プロパティも変更され、追加された行と変更された行は変更されず、削除された行は削除されます。 T DataSet に ForeIGNKEYCONSTRAINT オブジェクトが含まれている場合、AcceptChanges メソッドを呼び出すと、accountrejectrule が強制的に実装されます。
コードは次のとおりです (アセンブリ: System.Data (system.data.dll 内)):
public void AcceptChanges() { IntPtr intPtr; Bid.ScopeEnter(out intPtr, "<ds.DataRow.AcceptChanges|API> %d#\n", this.ObjectID); try { this.EndEdit(); if (this.RowState != DataRowState.Detached && this.RowState != DataRowState.Deleted && this._columns.ColumnsImplementingIChangeTrackingCount > 0) { DataColumn[] columnsImplementingIChangeTracking = this._columns.ColumnsImplementingIChangeTracking; for (int i = 0; i < columnsImplementingIChangeTracking.Length; i++) { DataColumn column = columnsImplementingIChangeTracking[i]; object obj = this[column]; if (DBNull.Value != obj) { IChangeTracking changeTracking = (IChangeTracking)obj; if (changeTracking.IsChanged) { changeTracking.AcceptChanges(); } } } } this._table.CommitRow(this); } finally { Bid.ScopeLeave(ref intPtr); } }