집 >백엔드 개발 >C#.Net 튜토리얼 >C# DataSet.AcceptChanges 메서드
DataSet.AcceptChanges 메서드:
로드된 이후 또는 AcceptChanges가 마지막으로 호출된 이후 이 DataSet에 적용된 모든 변경 사항을 커밋합니다.
DataRow 및 DataTable 클래스에는 AcceptChanges 메서드가 있습니다. DataTable 수준에서 AcceptChanges를 호출하면 호출되는 각 DataRow에 대해 AcceptChanges 메서드가 호출됩니다. 마찬가지로 DataSet에서 AcceptChanges를 호출하면 DataSet의 모든 테이블에서 AcceptChanges가 호출됩니다. 따라서 여러 수준에서 메서드를 호출할 수 있습니다. DataSet의 AcceptChanges를 호출하면 모든 보조 개체(예: 테이블 및 행)에 대해 메서드를 한 번 호출할 수 있습니다.
DataSet에서 AcceptChanges가 호출되면 여전히 편집 모드에 있는 모든 DataRow 개체는 편집을 성공적으로 종료합니다. 각 DataRow의 RowState 속성도 변경됩니다. Added 및 Modified 행은 Unchanged가 되고 삭제된 행은 제거됩니다.
DataSet에 ForeignKeyConstraint 개체가 포함된 경우 AcceptChanges 메서드를 호출하면 AcceptRejectRule도 적용됩니다.
코드는 다음과 같습니다(어셈블리: 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); } }
위는 C# DataSet입니다. AcceptChanges 메소드 내용, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!