>  기사  >  백엔드 개발  >  C# DataSet.AcceptChanges 메서드

C# DataSet.AcceptChanges 메서드

黄舟
黄舟원래의
2017-02-21 11:11:511314검색

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)를 참고하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.