Удаление DataRow

Существует два метода, которые можно использовать для удаления DataRow объекта из DataTable объекта: метода DataRowCollection Remove объекта и Delete метода объекта DataRow. Remove В то время как метод удаляет DataRow из DataRowCollection, Delete метод помечает только строку для удаления. Фактическое удаление происходит, когда приложение вызывает метод AcceptChanges . Использование метода Delete позволяет программно проверять, какие строки помечены для удаления, перед их фактическим удалением. Когда строка отмечена для удаления, ее свойство RowState имеет значение Delete.

Ни Delete, ни Remove не должны вызываться в цикле foreach во время итерации по объекту DataRowCollection. Ни Delete, ни Remove не изменяет состояние коллекции.

При использовании DataSet dataTableв сочетании с DataAdapter и реляционным источником данных используйте метод Delete dataRow для удаления строки. Метод Delete помечает строку как удаленную в Наборе данных или DataTable , но не удаляет ее. Вместо этого, когда DataAdapter обнаруживает строку, помеченную как Удаленная, она выполняет метод DeleteCommand для удаления строки в источнике данных. Затем строку можно удалить безвозвратно с помощью метода AcceptChanges . Если вы используете Remove для удаления строки, строка удаляется полностью из таблицы, но DataAdapter не удаляет строку в источнике данных.

Метод Remove объекта DataRowCollection принимает DataRow в качестве аргумента и удаляет его из коллекции, как показано в следующем примере.

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

В отличие от этого, в следующем примере показано, как вызвать метод Delete в DataRow , чтобы изменить значение RowState на Deleted.

workRow.Delete  
workRow.Delete();  

Если строка помечена для удаления и вызывается метод AcceptChanges объекта DataTable, строка удаляется из DataTable. В отличие от этого, если вы вызываете RejectChanges, RowState строки отменить изменения к тому, что было раньше помечено как Deleted.

Примечание.

Если добавляется RowState объекта DataRow, то есть он только что добавлен в таблицу, а затем помечается как удаленный, он удаляется из таблицы.

См. также