2010-04-27 7 views
0

Je dispose d'un datatable lié à un DataGridView winforms via un BindingSourceControl. Je veux être en mesure de gérer l'événement UserDeletingRow à partir de dataGridView et marquer la ligne dans mon DataTable comme supprimé. Je dois alors être en mesure de récupérer les lignes marquées comme supprimées de la datatable afin que je puisse les supprimer de ma base de données quand un bouton Enregistrer est cliqué. S'il vous plaît ne pas, je ne veux pas supprimer de la base de données à chaque déclenchement de UserDeletingRow, marque seulement cette ligne comme supprimé dans mon ensemble de données.Marquer une ligne comme supprimée dans dataTable sur UserDeletingRow

Quelqu'un peut-il indiquer comment faire cela?

Répondre

2

Le meilleur que je trouve à faire est d'être sûr d'appeler AcceptChanges() sur le dataTable/dataset avant le début de l'édition - Je l'ai fait au chargement du formulaire lorsque les données étaient liées à la grille. Maintenant, lorsque l'utilisateur supprime des enregistrements via la grille puis frappe "enregistrer", je suis en mesure de filtrer les lignes dans le dataTable par rowState de la ligne pour obtenir ceux qui ont été supprimés. Notez que la propriété Count sur la collection rows de dataTable est supprimée d'une unité chaque fois que l'utilisateur supprime une ligne, mais que la ligne est toujours dans le DataTable, elle est simplement marquée pour la suppression.

1

Capture the « à supprimer » rowId (s) dans une collection puis créez une méthode et passer la collection pour gérer la suppression des enregistrements

Questions connexes