Heim  >  Artikel  >  Backend-Entwicklung  >  C# Table.Rows[index].Delete()

C# Table.Rows[index].Delete()

黄舟
黄舟Original
2017-02-21 11:07:151628Durchsuche

Wenn die Methode DataRow.Delete() aufgerufen wird, wird die RowState-Eigenschaft der entsprechenden Zeile auf DataRowState.Deleted gesetzt. Wenn der Status einer Zeile DataRowState.Deleted ist, können wir unter normalen Umständen nicht auf diese Zeile zugreifen. Wenn Sie gelöschte Originaldaten abrufen müssen, können Sie die überladene Methode ihrer Eintragseigenschaft verwenden, um den Parameter DataRowVersion.Original zu übergeben.
Der Code sieht so aus:

if (typedDataRow.RowState == DataRowState.Deleted)
id = (string)typedDataRow["CustomerID", DataRowVersion.Original];

Verwenden Sie datatable.Rows[i].Delete(), um Zeilen zu löschen, oder drücken Sie die Entf-Taste im DataGrid, um Zeilen zu löschen und dann auf die Tabelle zuzugreifen. Der Fehler „Gelöschte Zeile greift auf die Informationen der Zeile zu“ kann nicht übergeben werden. Der Grund ist wie folgt:
Nach Delete () ist die Methode datatable.AccepteChanges () erforderlich, um das vollständige Löschen zu bestätigen, da Delete () nur den Status der entsprechenden Spalte als gelöscht markiert und auch zurückgesetzt werden kann über datatable.RejectChanges(), um das Löschen der Zeile abzubrechen.
Also wenn Sie die Datenzeile vollständig löschen möchten, müssen Sie die Methoden Delete() und AccepteChanges() gleichzeitig verwenden , oder die Methode datatable.Rows.RemoveAt(i. verwenden )-Methode zum direkten Löschen von , wobei i den Zeilenindex darstellt und eine andere Methode datatable.Rows.Remove(DataRow dr) ist, um die angegebene Zeile zu löschen.
Beachten Sie jedoch bei der Verwendung von datatable.Rows.RemoveAt(i), dass Sie 0, 1 in nicht kontinuierlich löschen die ursprüngliche Tabelle. Nach dem Löschen von 0 Zeilen wird die ursprüngliche 1 Zeile zu 0 Zeilen, sodass datatable.Rows.RemoveAt(1) tatsächlich 2 Zeilen der ursprünglichen Tabelle löscht. Zu diesem Zeitpunkt sollte es i = i - 1;

sein. Sie sollten also datatable.Rows.RemoveAt(i)

mit Vorsicht verwenden:

Zeilenversion (DataRowVersion)
Das Zeilenobjekt (DataRow) verfügt über vier verschiedene Zeilenversionen, nämlich „Aktuell“, „Original“, „Vorgeschlagen“ und „Standard“. Es folgt eine kurze Beschreibung dieser Zeilenversionen.
Aktuell: Stellt den aktuellen Wert der Zeile dar. Für eine Zeile im gelöschten Status ist keine Version der Zeile vorhanden.
Original: Stellt den ursprünglichen Wert der Zeile dar. Die Zeilenversion im Status „Hinzugefügt“ existiert nicht.
Vorgeschlagen: Gibt den empfohlenen Wert der Zeile an. Diese Zeilenversion existiert für Zeilen, die nicht zur Tabelle gehören, d. h. Zeilen im Status „Getrennt“; diese Zeilenversion existiert auch für Zeilen, die bearbeitet werden.
Standard: Stellt die Standardversion der Zeile dar. Die Standardzeilenversion für Zeilen im Status „Hinzugefügt“, „Geändert“ oder „Unverändert“ ist „aktuell“. Für Zeilen im Status „Gelöscht“ ist die Standardzeilenversion „Original“. Die Standardversion für Zeilen im Status „Getrennt“ wird vorgeschlagen.

Das Obige ist der Inhalt von C# Table.Rows[index].Delete() 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