Удаление DataRowDataRow Deletion

Существует два метода, которые DataRow можно использовать для удаления объекта Delete DataTable из объекта: метод DataRowCollection Remove объекта и метод объекта DataRow .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. В Remove то время как метод удаляет DataRow из датаровколлектион, Delete метод помечает только строку для удаления.Whereas the Remove method deletes a DataRow from the DataRowCollection, the Delete method only marks the row for deletion. Фактическое удаление происходит, когда приложение вызывает метод AcceptChanges .The actual removal occurs when the application calls the AcceptChanges method. Использование метода Delete позволяет программно проверять, какие строки помечены для удаления, перед их фактическим удалением.By using Delete, you can programmatically check which rows are marked for deletion before actually removing them. Когда строка отмечена для удаления, ее свойство RowState имеет значение Delete.When a row is marked for deletion, its RowState property is set to Delete.

Ни Delete, ни Remove не должны вызываться в цикле foreach во время итерации по объекту DataRowCollection.Neither Delete nor Remove should be called in a foreach loop while iterating through a DataRowCollection object. Ни Delete, ни Remove не изменяет состояние коллекции.Delete nor Remove modify the state of the collection.

При использовании DataSet таблицы данных или в сочетании с DataAdapter и реляционным источником данных используйте метод Delete объекта DataRow для удаления строки.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. Метод Delete помечает строку как удаленную в наборе данных или DataTable , но не удаляет ее.The Delete method marks the row as Deleted in the DataSet or DataTable but does not remove it. Вместо этого, когда DataAdapter обнаруживает строку, помеченную как Удаленная, она выполняет метод DeleteCommand для удаления строки в источнике данных.Instead, when the DataAdapter encounters a row marked as Deleted, it executes its DeleteCommand method to delete the row at the data source. Затем строку можно удалить без возможности восстановления с помощью метода AcceptChanges .The row can then be permanently removed using the AcceptChanges method. При использовании метода Remove для удаления строки строка удаляется полностью из таблицы, но DataAdapter не удаляет строку в источнике данных.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.

Метод Remove объекта датаровколлектион принимает DataRow в качестве аргумента и удаляет его из коллекции, как показано в следующем примере.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);  

В следующем примере показано, как вызвать метод Delete для DataRow , чтобы изменить его свойство RowState на deleted.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();  

Если строка помечена для удаления и вызывается метод AcceptChanges объекта DataTable , то строка удаляется из DataTable.If a row is marked for deletion and you call the AcceptChanges method of the DataTable object, the row is removed from the DataTable. В отличие от этого, привызове RejectChanges RowState строки восстанавливается до того, как она была помечена как Удаленная.In contrast, if you call RejectChanges, the RowState of the row reverts to what it was before being marked as Deleted.

Примечание

Если добавляется RowState объекта DataRow , то есть он был только что добавлен в таблицу, а затем помечается как Удаленный, он удаляется из таблицы.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.

См. такжеSee also