Поделиться через


Удаление строки данных

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

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

При использовании DataSetdataTable в сочетании с DataAdapter и реляционным источником данных используйте метод DeletedataRow для удаления строки. Метод 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Вставлено, то есть он только что добавлен в таблицу, и затем помечается как Удалено, он удаляется из таблицы.

См. также