C# DataSet.RejectChanges 메서드

롤백은 DataSet을 만든 이후 또는 마지막으로 호출된 DataSet입니다.AcceptChanges 이후 수행된 모든 변경 사항
DataSet을 호출합니다.RejectChanges는 DataSet에 포함된 모든 DataTable 객체에 대해 DataTable을 호출합니다.RejectChanges 메서드.
DataSet에 포함된 각 DataRow 객체는 DataRow를 호출할 수 있습니다.BeginEdit 메서드는 편집 모드로 설정됩니다.DataRow를 호출하고 있습니다.EndEdit 방법 이후 DataRow 객체가 속한 DataTable에서 DataTable을 호출할 수 있습니다.변경 사항을 거부하려면 RejectChanges를 사용하십시오.
        DataTable.RejectChanges 메서드가 호출되면 편집 모드에 있는 모든 행의 편집이 취소됩니다.새 행이 제거됩니다.수정된 행과 삭제된 행이 원래 상태로 돌아갑니다(DataRowState.Unchanged).
AcceptChanges와 RejectChanges는 DataRow와 관련된 변경 사항, 즉 Add, Remove, Delete 및 Modify에만 적용됩니다.그것들은 구조와 구조 방면의 변경에 적용되지 않는다.
코드는 다음과 같습니다.
public void RejectChanges()
{
	IntPtr intPtr;
	Bid.ScopeEnter(out intPtr, "<ds.DataRow.RejectChanges|API> %d#
", this.ObjectID); try { if (this.RowState != DataRowState.Detached) { if (this._columns.ColumnsImplementingIChangeTrackingCount != this._columns.ColumnsImplementingIRevertibleChangeTrackingCount) { DataColumn[] columnsImplementingIChangeTracking = this._columns.ColumnsImplementingIChangeTracking; for (int i = 0; i < columnsImplementingIChangeTracking.Length; i++) { DataColumn dataColumn = columnsImplementingIChangeTracking[i]; if (!dataColumn.ImplementsIRevertibleChangeTracking) { object obj; if (this.RowState != DataRowState.Deleted) { obj = this[dataColumn]; } else { obj = this[dataColumn, DataRowVersion.Original]; } if (DBNull.Value != obj && ((IChangeTracking)obj).IsChanged) { throw ExceptionBuilder.UDTImplementsIChangeTrackingButnotIRevertible(dataColumn.DataType.AssemblyQualifiedName); } } } } DataColumn[] columnsImplementingIChangeTracking2 = this._columns.ColumnsImplementingIChangeTracking; for (int j = 0; j < columnsImplementingIChangeTracking2.Length; j++) { DataColumn column = columnsImplementingIChangeTracking2[j]; object obj2; if (this.RowState != DataRowState.Deleted) { obj2 = this[column]; } else { obj2 = this[column, DataRowVersion.Original]; } if (DBNull.Value != obj2) { IChangeTracking changeTracking = (IChangeTracking)obj2; if (changeTracking.IsChanged) { ((IRevertibleChangeTracking)obj2).RejectChanges(); } } } } this._table.RollbackRow(this); } finally { Bid.ScopeLeave(ref intPtr); } }

좋은 웹페이지 즐겨찾기