Comment adapter un valuemember ?

Résolu
Signaler
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
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é.

Je ne sais pas si j'ai été assez clair.

Cordialement

3 réponses

Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

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

Bonsoir,

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.

Bonne soirée.
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

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 !

Cordialement.