Connaitre le numéro de la ligne sélectionnée (Datagridview / Dataset)
alexbesn
Messages postés21Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention 4 août 2009
-
28 mai 2009 à 10:39
alexbesn
Messages postés21Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention 4 août 2009
-
29 mai 2009 à 09:27
Bonjour.
J'ai un DataGridview que je remplis avec mon Dataset. Ce que je cherche c'est supprimer la ligne que l'utilisateur va sélectionner dans le datagridview.
Pour cela, lors de l'événement dgv_rowenter je récupère le num de la ligne qu'il a sélectionné. Ensuite, je supprime cette ligne dans mon dataset et je met à jour la base (jusqu'à là ça fonctionne).
Le problème est que si l'utilisateur clic sur une colone du dataset pour réorganiser l'ordre d'affichage, cela met les lignes dans un ordre différent du dataset. Donc s'il sélectionne une ligne sur le datagridview, le numéro de cette ligne ne correspond pas forcément à la ligne équivalente du dataset ! Et s'il clic sur supprimer, il va supprimer une ligne qui est pour la plupart du temps différente !
J'espère que vous comprennez mon problème et merci d'avance !
Voici mon code :
//On prend toute la table
SqlCmd = "select * from " + listBox_tables.SelectedItem;
//Déclaration du data adapteur
OleDbDataAdapter Da = new OleDbDataAdapter(SqlCmd, Conn);
//On supprime la ligne
Ds.Tables[Convert.ToString(listBox_tables.SelectedItem)].Rows[ligne_select].Delete();
//On maj la base
CmdGrid = new OleDbCommandBuilder(Da);
Da.DeleteCommand = CmdGrid.GetDeleteCommand();
Da.Update(Ds, Convert.ToString(listBox_tables.SelectedItem));
A voir également:
Connaitre le numéro de la ligne sélectionnée (Datagridview / Dataset)
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 28 mai 2009 à 21:44
Bonsoir,
je pense que l'utilisation d'un objet CurrencyManager tu dois pouvoir conserver la position en cours sur la source, independament de la présentation.
il me semble que cet objet permet de conserver un lien entre la source et la vue.
mais je ne l'ai jamais utilisé...
alexbesn
Messages postés21Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention 4 août 2009 29 mai 2009 à 09:27
Bonjour.
Merci pour ta réponse.
J'ai trouvé une autre solution : une fois le dataset modifié (car quand on modifie le datagridview on modifie le dataset au passage), il suffit de synchroniser le dataset avec la base access et ça fonctionne.
Seulement, j'ai un peu de mal à synchroniser les deux (ça marche bien que pour la suppression) personne n'a un exemple avec les commandbuilder et tout ?