ホームページ  >  記事  >  バックエンド開発  >  C# DataSet.AcceptChanges メソッド

C# DataSet.AcceptChanges メソッド

黄舟
黄舟オリジナル
2017-02-21 11:11:511314ブラウズ

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);
	}
}

上記は C# DataSet.AcceptChanges メソッドの内容です。その他の関連内容については、注意してください。 PHP 中国語 Web サイト (www.php.cn) にアクセスしてください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。