Suppresion d'un objet DataRow
Mise à jour : November 2007
Il existe deux méthodes pour supprimer un objet DataRow d'un objet DataTable : la méthode Remove de l'objet DataRowCollection et la méthode Delete de l'objet DataRow. La méthode Remove supprime un DataRow du DataRowCollection. La méthode Delete marque seulement la ligne pour suppression. La suppression réelle ne se produit que lorsque l'application appelle la méthode AcceptChanges. En utilisant Delete, vous pouvez vérifier par programme les lignes marquées pour suppression avant de les supprimer. Lorsqu'une ligne est marquée pour suppression, sa propriété RowState prend la valeur Deleted.
Lors de l'utilisation d'un objet DataSet ou d'un DataTable avec un DataAdapter et une source de données relationnelle, utilisez la méthode Delete de DataRow pour supprimer la ligne. La méthode Delete marque la ligne comme Deleted dans le DataSet ou le DataTable mais ne la supprime pas. Lorsque le DataAdapter rencontre une ligne marquée comme Deleted, il exécute sa méthode DeleteCommand pour supprimer la ligne au niveau de la source de données. La ligne peut ensuite être supprimée de manière permanente à l'aide de la méthode AcceptChanges. Si vous utilisez Remove pour supprimer la ligne, celle-ci sera entièrement supprimée de la table mais DataAdapter ne supprimera pas la ligne au niveau de la source de données.
La méthode Remove du DataRowCollection prend un DataRow comme argument et le supprime de la collection, comme le montre l'exemple suivant.
workTable.Rows.Remove(workRow)
workTable.Rows.Remove(workRow);
Par opposition, l'exemple suivant montre comment appeler la méthode Delete sur un DataRow pour modifier son RowState en Deleted.
workRow.Delete
workRow.Delete();
Si une ligne est marquée pour suppression et si vous appelez la méthode AcceptChanges de l'objet DataTable, la ligne est supprimée du DataTable. Par contre, si vous appelez RejectChanges, le RowState de la ligne revient à la valeur qu'il avait avant d'être marqué comme Deleted.
Remarque : |
---|
Si le RowState d'un DataRow a la valeur Added (indiquant qu'il vient juste d'être ajouté à la table) et s'il est ensuite marqué comme Deleted, il est supprimé de la table. |