Moundir76
Messages postés281Date d'inscriptiondimanche 3 octobre 2010StatutMembreDernière intervention16 mai 2014
-
15 nov. 2011 à 15:42
Moundir76
Messages postés281Date d'inscriptiondimanche 3 octobre 2010StatutMembreDernière intervention16 mai 2014
-
16 nov. 2011 à 16:01
Bonjour,
Je remplis actuellement une listbox à l'aide d'une connexion à ma base de données comme ceci avec un curseur
MaConnexion.Open()
Dim CmdSelectClients As New SqlCommand("SELECT * FROM CLIENT ORDER BY NOM", MaConnexion)
Dim MonCurseur As SqlDataReader = CmdSelectClients.ExecuteReader
While MonCurseur.Read()
lstClients.Items.Add(MonCurseur.GetString(1) + " " + MonCurseur.GetString(2))
End While
MonCurseur.Close()
MaConnexion.Close()
Cependant je souhaiterais mettre dans mon valuemember le "MonCurseur.GetString(0)", afin qu'il n’apparaisse pas dans ma listbox mais lorsque je sélectionne, je puisse avoir la donnée du valuemember associée a l'item selectionné.
Moundir76
Messages postés281Date d'inscriptiondimanche 3 octobre 2010StatutMembreDernière intervention16 mai 2014 16 nov. 2011 à 16:01
Voici la solution que j'ai trouvée et qui fonctionne très bien :
Dim dt As New DataTable()
Dim daTable As New SqlDataAdapter(CmdSelectClients)
lstClients.Items.Clear()
MaConnexion.Open()
daTable.Fill(dt)
lstClients.DataSource = dt
lstClients.DisplayMember = "nom_prenom"
lstClients.ValueMember = "idClient"
MaConnexion.Close()
Personnellement au lieu d'une ListBox, j'utiliserais une ListView (plus riche en options) qui, pour chaque item, te donnes la possibilité de stocker un élément de type Object (classe, string, etc...) à l'aide de la propriété Tag de l'item.
Lors de sa récupération par l'événement ItemSelectionChanged, il te suffira de caster (DirectCast) la valeur du Tag dans le type approprié.
Note : l'événement ItemSelectionChanged (qui s'exécute 2 fois si un autre item est déjà sélectionné) nécessite un test de la propriété IsSelected de l'argument (e) de l'événement, afin de savoir s'il s'agit de l'item sélectionné ou de celui qui est abandonné par la sélection.
Moundir76
Messages postés281Date d'inscriptiondimanche 3 octobre 2010StatutMembreDernière intervention16 mai 2014 16 nov. 2011 à 14:48
Bonsoir,
Merci pour ta réponse, cependant je ne dois absolument passer par une ListBox ...
J'ai essayé de tenter de passer par une collection, mais je n'ai pas réussi.
Si quelqu'un aurait une astuce je suis preneur !