"DataRow"-LöschungDataRow Deletion

Es gibt zwei Methoden zum DataRow Löschen eines-Objekts aus einem DataTable -Objekt: DataRowCollection die Remove -Methode des-Objekts und die Delete -Methode des DataRow -Objekts.There are two methods you can use to delete a DataRow object from a DataTable object: the Remove method of the DataRowCollection object, and the Delete method of the DataRow object. Während die Remove -Methode eine DataRow aus der DataRowCollectionlöscht, Delete markiert die Methode nur die Zeile zum Löschen.Whereas the Remove method deletes a DataRow from the DataRowCollection, the Delete method only marks the row for deletion. Das eigentliche Entfernen tritt auf, wenn die Anwendung die Methode " akzeptchanges " aufruft.The actual removal occurs when the application calls the AcceptChanges method. Mithilfe von Delete können Sie programmgesteuert überprüfen, welche Zeilen zum Löschen markiert sind, bevor Sie sie tatsächlich entfernen.By using Delete, you can programmatically check which rows are marked for deletion before actually removing them. Wenn eine Zeile zum Löschen markiert ist, wird deren RowState-Eigenschaft auf Delete festgelegt.When a row is marked for deletion, its RowState property is set to Delete.

Beim Durchlaufen eines Delete-Objekts sollten weder Remove noch DataRowCollection in einer foreach-Schleife aufgerufen werden.Neither Delete nor Remove should be called in a foreach loop while iterating through a DataRowCollection object. Der Auflistungszustand wird durch Delete und Remove nicht geändert.Delete nor Remove modify the state of the collection.

Wenn Sie eine DataSet -oder- Daten Tabelle zusammen mit einem DataAdapter und einer relationalen Datenquelle verwenden, verwenden Sie die Delete -Methode der DataRow , um die Zeile zu entfernen.When using a DataSet or DataTable in conjunction with a DataAdapter and a relational data source, use the Delete method of the DataRow to remove the row. Die Delete -Methode markiert die Zeile als gelöscht im DataSet oder in der Datentabelle , entfernt Sie jedoch nicht.The Delete method marks the row as Deleted in the DataSet or DataTable but does not remove it. Wenn der DataAdapter auf eine Zeile stößt, die als gelöschtmarkiert ist, führt er stattdessen seine DeleteCommand -Methode aus, um die Zeile in der Datenquelle zu löschen.Instead, when the DataAdapter encounters a row marked as Deleted, it executes its DeleteCommand method to delete the row at the data source. Die Zeile kann dann mithilfe der Methode " Accept tchanges " dauerhaft entfernt werden.The row can then be permanently removed using the AcceptChanges method. Wenn Sie zum Löschen der Zeile " Entfernen " verwenden, wird die Zeile vollständig aus der Tabelle entfernt, aber der DataAdapter löscht die Zeile nicht in der Datenquelle.If you use Remove to delete the row, the row is removed entirely from the table, but the DataAdapter will not delete the row at the data source.

Die Remove -Methode der DataRowCollection übernimmt eine DataRow als Argument und entfernt Sie aus der Auflistung, wie im folgenden Beispiel gezeigt.The Remove method of the DataRowCollection takes a DataRow as an argument and removes it from the collection, as shown in the following example.

workTable.Rows.Remove(workRow)  
workTable.Rows.Remove(workRow);  

Im Gegensatz dazu wird im folgenden Beispiel veranschaulicht, wie die Delete -Methode für eine DataRow aufgerufen wird, um den RowState in " deleted" zu ändern.In contrast, the following example demonstrates how to call the Delete method on a DataRow to change its RowState to Deleted.

workRow.Delete  
workRow.Delete();  

Wenn eine Zeile zum Löschen markiert ist und Sie die Accept-Changes -Methode des datbare -Objekts aufzurufen, wird die Zeile aus der DatenTabelle entfernt.If a row is marked for deletion and you call the AcceptChanges method of the DataTable object, the row is removed from the DataTable. Wenn Sie dagegen RejectChangesaufrufen, wird der RowState der Zeile auf den Wert zurückgesetzt, der vor der Markierung als gelöschtmarkiert wurde.In contrast, if you call RejectChanges, the RowState of the row reverts to what it was before being marked as Deleted.

Hinweis

Wenn der RowState einer DataRow hinzugefügtwird, was bedeutet, dass Sie der Tabelle soeben hinzugefügt wurde und dann als gelöschtmarkiert ist, wird Sie aus der Tabelle entfernt.If the RowState of a DataRow is Added, meaning it has just been added to the table, and it is then marked as Deleted, it is removed from the table.

Siehe auchSee also