Partilhar via


Exclusão de DataRow

Há dois métodos que você pode usar para excluir um DataRow objeto de um DataTable objeto: o método Remove do DataRowCollection objeto e o Delete método do objeto DataRow . Enquanto o Remove método exclui um DataRow do DataRowCollection, o Delete método marca apenas a linha para exclusão. A remoção real ocorre quando o aplicativo chama o método AcceptChanges . DeleteUsando o , você pode verificar programaticamente quais linhas estão marcadas para exclusão antes de realmente removê-las. Quando uma linha é marcada para exclusão, sua RowState propriedade é definida como Delete.

Nem Delete Remove deve ser chamado em um loop foreach durante a iteração através de um DataRowCollection objeto. Delete nem Remove modificar o estado da coleção.

Ao usar um DataSet ou DataTable em conjunto com um DataAdapter e uma fonte de dados relacional, use o método Delete do DataRow para remover a linha. O método Delete marca a linha como Deleted no DataSet ou DataTable mas não a remove. Em vez disso, quando o DataAdapter encontra uma linha marcada como Deleted, ele executa seu método DeleteCommand para excluir a linha na fonte de dados. A linha pode então ser removida permanentemente usando o método AcceptChanges . Se você usar Remove para excluir a linha, a linha será removida inteiramente da tabela, mas o DataAdapter não excluirá a linha na fonte de dados.

O método Remove do DataRowCollection usa um DataRow como um argumento e o remove da coleção, conforme mostrado no exemplo a seguir.

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

Por outro lado, o exemplo a seguir demonstra como chamar o método Delete em um DataRow para alterar seu RowState para Deleted.

workRow.Delete  
workRow.Delete();  

Se uma linha estiver marcada para exclusão e você chamar o método AcceptChanges do objeto DataTable , a linha será removida do DataTable. Por outro lado, se você chamar RejectChanges, o RowState da linha será revertido para o que era antes de ser marcado como Deleted.

Nota

Se o RowState de um DataRow for Adicionado, o que significa que acabou de ser adicionado à tabela e, em seguida, for marcado como Excluído, ele será removido da tabela.

Consulte também