C# DataSet.RejectChanges 메서드
2490 단어 메서드C#datasetRejectChanges
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);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JS] Object, Array 자주 사용하는 순환 Method 정리key, value 두 값에 접근할 땐 Object.entries() key에만 접근할 때는 Object.keys() : 객체의 key 로 이루어진 배열이 반환된다. for...of와 함께 쓰면 순환하면서 접근할 수...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.