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));