Heim  >  Artikel  >  Backend-Entwicklung  >  C# DataSet.AcceptChanges-Methode

C# DataSet.AcceptChanges-Methode

黄舟
黄舟Original
2017-02-21 11:11:511348Durchsuche

DataSet.AcceptChanges-Methode:
Übernimmt alle Änderungen, die an diesem DataSet seit dem Laden oder seit dem letzten Aufruf von AcceptChanges vorgenommen wurden.
Sowohl die DataRow- als auch die DataTable-Klasse verfügen über die AcceptChanges-Methode. Durch den Aufruf von AcceptChanges auf der DataTable-Ebene wird die AcceptChanges-Methode für jede aufgerufene DataRow aufgerufen. Ebenso führt der Aufruf von AcceptChanges für ein DataSet dazu, dass AcceptChanges für jede Tabelle im DataSet aufgerufen wird. Daher können Sie die Methode auf mehreren Ebenen aufrufen. Wenn Sie AcceptChanges des DataSets aufrufen, können Sie die Methode einmal für alle sekundären Objekte (z. B. Tabellen und Zeilen) aufrufen.
Wenn AcceptChanges für ein DataSet aufgerufen wird, beendet jedes DataRow-Objekt, das sich noch im Bearbeitungsmodus befindet, seine Bearbeitung erfolgreich. Die RowState-Eigenschaft jeder DataRow wird ebenfalls geändert; hinzugefügte und geänderte Zeilen werden unverändert und gelöschte Zeilen werden entfernt.

Wenn das DataSet ein ForeignKeyConstraint-Objekt enthält, führt der Aufruf der AcceptChanges-Methode auch dazu, dass die AcceptRejectRule erzwungen wird.

Der Code lautet wie folgt (Assembly: System.Data (in 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);
	}
}

Das Obige ist C# DataSet .AcceptChanges Der Inhalt der Methode. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:C# Table.Rows[index].Delete()Nächster Artikel:C# Table.Rows[index].Delete()