problème listbox avec plusieurs colonnes
bonjour,
mon probleme est simple a comprendre mais je n'arrive pas à le resoudre.
je souhaite remplir une listbox avec les données d'une table de ma base, et je voudrais lorsque je clique sur une ligne de ma listbox, remplir une textbox avec des données de cette meme table,
jusqu'a pas de soucis voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
Private Sub Form_S5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Initialisation de la chaîne contenant l'instruction SQL
strSql = "SELECT * FROM Structure_Predefined"
'Ouvrir la connexion
ObjetConnection.Open()
'Instancier un objet Commande
ObjetCommand = New OleDbCommand(strSql, Form1.myConnexion)
'Instancier un objet Adapter
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
'initialiser l'objet Command
ObjetCommand.Connection() = ObjetConnection
'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
ObjetDataAdapter.Fill(ObjetDataSet, "Structure_Predefined")
'Mettre dans un Objet DataTable une table du DataSet
ObjetDataTable = ObjetDataSet.Tables("Structure_Predefined")
'Indiquer quelle colonne afficher
Lstbox_Structure.MultiColumn = True
Lstbox_Structure.DisplayMember = ("Structure_name")
Lstbox_Structure.ValueMember = "Structure_id"
'Indiquer au ListBox d'afficher la table "Structure_Predefined" (indiquer la source)
Lstbox_Structure.DataSource = ObjetDataSet.Tables("Structure_Predefined")
ObjetConnection.Close()
Private Sub Lstbox_Structure_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Lstbox_Structure.SelectedIndexChanged
'Dans ce cas ListBox1.SelectedValue contient bien un Int32 correspondant au 'NutInt' selectionné.
'Ensuite on peut récupérer sans problème NumInt (et l'afficher par exemple dans une TextBox)
If Lstbox_Structure.SelectedIndex <> -1 Then
txt_scenario.Text = CStr(Lstbox_Structure.SelectedValue)
End If
End Sub |
Donc la j'affiche dans la listbox Lstbox_Structure.DisplayMember = ("Structure_name")
et la valeur de cette donnée est :Lstbox_Structure.ValueMember = "Structure_id"
moi se que je veux, c'est dans ma textbox non pas afficher :
txt_scenario.Text = CStr(Lstbox_Structure.SelectedValue)
mais une troisieme colonne de cette table.
je ne sais pas comment recuperer la colonne desiré, pourtant dans le datasource j'ai bien toute ma table.
alors mon probleme ai comment afficher une colonne de lier a la listbox ?
je bloque vraiment.
merci a vous
Lstbox.SelectedValue <=>correspond Lstbox_Structure.ValueMember
bonjour djams9
tu mets dans Lstbox_Structure.ValueMember la colonne souhaite pas necessairement "Structure_id" et il te renverra la valeur dans Lstbox_Structure.SelectedValue.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Lstbox_Structure.DisplayMember = ("Structure_name")
Lstbox_Structure.ValueMember = "Structure_MaColonne"
'ce code toujours valable sans modif
Private Sub Lstbox_Structure_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Lstbox_Structure.SelectedIndexChanged
'Dans ce cas ListBox1.SelectedValue contiendra la colonne mentionne dans ValueMember.
'Ensuite on peut récupérer sans problème la valeur de ValueMember
If Lstbox_Structure.SelectedIndex <> -1 Then
txt_scenario.Text = CStr(Lstbox_Structure.SelectedValue)
End If
End Sub |
bon code...........