Récupérer les attributs d'une ligne sélectionnée par l'utilisateur d'un datagrid

cs_abdimen4 Messages postés 1 Date d'inscription mardi 1 juin 2010 Statut Membre Dernière intervention 12 août 2010 - 12 août 2010 à 12:34
PapyNormand Messages postés 27 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 16 janvier 2014 - 13 août 2010 à 23:29
Salut tout le monde,
je suis en train de faire un mini projet "windows Forms appliction" en c# , j'ai utilisé un datagrid qui m'affiche tous les enregistrements de ma table "Patient", maintenant je veux que lorsque l'utilisateur sélectionne une ligne de mon datagrid nommé "PatientDataGrid" ,je récupère les attributs de cette ligne ou plutôt récupérer juste le numéro de patient sélectionné(c'est à dire la valeur de la première colonne de cette ligne sélectionnée).
J'attends vos aide avec impatiente , car je me suis vraiment bloqué

1 réponse

PapyNormand Messages postés 27 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 16 janvier 2014 1
13 août 2010 à 23:29
Bonjour,

Par principe, je vous conseillerai d'abandonner le controle DataGrid au profit de son remplaçant DataGridView qui offre plus de possibilités
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid(v=VS.90).aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview(v=VS.90).aspx

Je vous conseillerai de regarder ce lien :
http://msdn.microsoft.com/fr-fr/library/e0ywh3cz(v=VS.90).aspx
ainsi que :
http://msdn.microsoft.com/fr-fr/library/ms171614(v=VS.90).aspx

Pour la propriété SelectionMode, je préfère utiliser la valeur FullRowSelect ou mieux RowHeaderSelect qui me semble plus intuitif ( mais ce n'est qu'une question de gout )
Pour récupérer les lignes sélectionnées, utilisez la propriété SelectedRows
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.datagridview.selectedrows(v=VS.90).aspx

Ma m"thode préférée mais peut-être pas la meilleure est de charger le DataGridView avec une DataTable et de considérer que l'indice de la ligne sélectionnée est le même que l'indice de l'enregistrement sélectionné dans la DataTable ( ce qui est vrai si l'utilisateur ne change pas l'ordre de tri de la DataGridView )
DataRow m_row = Dt_maTable[m_indice]
Dt_maTable : la DataTable
m_indice : indice de la ligne sélectionnée dans la DataGridView
si votre champ s'appelle Nom , vous récupérez la valeur avec m_row["Name"]
Attention, il faudra peut-être faire un Cast ou utiliser Convert.ToString,Convert.ToInt32 pour récupérer une valeur exploitable

N'hésitez pas à reposter si vous souhaitez plus d'explications

Bonne journée
0
Rejoignez-nous