2010-11-15 4 views
1

Il existe une commande permettant de supprimer des lignes dans la liste Delete();Problème de suppression de ligne datable

Mais il suffit de le supprimer pour ne pas déplacer les lignes suivantes comme vecteurs ou arraylist.

Par exemple, il y a 3 lignes dans la table de données.

Ligne 1, données 1

Row 2, données 2

Row 3, 3. Données

Si je supprime la ligne 2, ce sera comme

Ligne 1, données 1

Row 2, RowStatus = Deleted

rang 3, donnée 3

Comment puis-je passer de la ligne 3 à la ligne 2 ???

J'ai un moyen mais ce n'est pas le bon.

Mon modèle est de créer une nouvelle base de données, de la cloner et de déplacer chaque ligne vers cette table en vérifiant l'état des lignes de chaque ligne. Puis effacez le datatable réel, et copiez toutes les données de datatable temporaire.

Il doit y avoir un meilleur moyen .. quelqu'un ??

Répondre

7

Vous devez appeler AcceptChanges sur le DataTable pour valider les modifications apportées. Cela supprimera les lignes marquées comme supprimées. (Avec toutes les autres modifications apportées au DataTable)

0

Oui, vous devez utiliser la méthode DataTable.AcceptChages() pour refléter les modifications apportées au DataTable.

-1

Pourquoi voulez-vous monter les rangées? Pardonnez ma curiosité ;-)

+0

oui, je suis. Et je l'ai eu. – william

1

La méthode Delete marque la ligne pour la suppression dans la base de données et ne la supprime pas réellement du DataTable. La méthode DataTable.Rows.Remove va supprimer la ligne du DataTable en mémoire comme vous le souhaitez.