Freigeben über


Löschen einer Zeile aus einer Tabelle

Sie können zwei verschiedene Methoden verwenden, um ein DataRow-Objekt aus einem DataTable-Objekt zu löschen: die Remove-Methode des DataRowCollection-Objekts und die Delete-Methode des DataRow-Objekts. Während die Remove-Methode eine DataRow aus der DataRowCollection löscht, markiert die Delete-Methode die Zeile nur zum Löschen. Die eigentliche Löschung erfolgt, wenn die Anwendung die AcceptChanges-Methode aufruft. Mit Hilfe von Delete können Sie programmgesteuert überprüfen, welche Zeilen zum Löschen markiert sind, bevor Sie sie tatsächlich entfernen. Ist eine Zeile zum Löschen markiert, ist ihre RowState-Eigenschaft auf Deleted gesetzt.

Bei Verwendung eines DataSets oder einer DataTable in Verbindung mit einem DataAdapter und einer relationalen Datenquelle verwenden Sie die Delete-Methode der DataRow, um die Zeile zu entfernen. Die Zeile wird von der Delete-Methode im DataSet oder in der DataTable zwar als Deleted markiert, jedoch nicht entfernt. Wenn der DataAdapter stattdessen jedoch eine als Deleted markierte Zeile findet, wird der zugehörige DeleteCommand ausgeführt, um die Zeile in der Datenquelle zu löschen. Anschließend kann die Zeile mit der AcceptChanges-Methode dauerhaft entfernt werden. Wenn Sie Remove zum Löschen der Zeile verwenden, wird die Zeile zwar vollständig aus der Tabelle entfernt, vom DataAdapter jedoch nicht aus der Datenquelle gelöscht.

Die Remove-Methode der DataRowCollection erhält eine DataRow als Argument und entfernt diese aus der Auflistung, wie im folgenden Beispiel gezeigt.

workTable.Rows.Remove(workRow)
[C#]
workTable.Rows.Remove(workRow);

Im Gegensatz dazu zeigt das folgende Beispiel, wie Sie die Delete-Methode für eine DataRow aufrufen, um deren RowState auf Deleted zu ändern.

workRow.Delete
[C#]
workRow.Delete();

Wenn eine Zeile zum Löschen markiert ist und Sie die AcceptChanges-Methode des DataTable-Objekts aufrufen, wird die Zeile aus der DataTable entfernt. Im Gegensatz dazu kehrt der RowState der Zeile, wenn Sie RejectChanges aufrufen, auf den Status zurück, der gültig war, bevor die Zeile als Deleted markiert wurde.

**Hinweis   **Wenn der RowState einer DataRow Added ist (d. h. die Zeile wurde gerade zur Tabelle hinzugefügt) und die Zeile dann als Deleted markiert wird, wird die Zeile aus der Tabelle entfernt.

Siehe auch

Bearbeiten von Daten in einer Datentabelle | DataRow-Klasse | DataRowCollection-Klasse | DataTable-Klasse