Problème pour "réinitialiser" une listbox
Bonsoir
J'ai une question surement simple sur comment vider une listbox
J'ai une première listbox qui se remplie avec un dataset, et lorsque je sélectionne un élément de cette listbox cela remplie une deuxième listbox (même procédé, requête sur un dataset)
J'ai essayé d'utiliser la fonction clear, remove, ca me vide bien la deuxième listbox en visuel (en ayant bien sur paramétrer le datasource sur nothing)
mais lorsque je sélectionne un élément sur la première listbox tout les éléments réapparaissent et s'accumulent
Je ne souhaite volontairement pas passer par un bouton (sauf mis a part pour test) pour garder une navigation plus rapide sur le soft
Mon code:
Remplissage de la première listbox
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Categories_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= data.mdb;"
strSql = "SELECT [code type], type FROM [2-RUBRIQUES_locale] WHERE [code gamme] = " & Me.Label1.Text
ObjetConnection = New OleDbConnection
ObjetConnection.ConnectionString = strConn
ObjetConnection.Open()
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetCommand.Connection() = ObjetConnection
ObjetDataAdapter.Fill(ObjetDataSet, "[2-RUBRIQUES_locale]")
ObjetDataTable = ObjetDataSet.Tables("[2-RUBRIQUES_locale]")
ListBox1.DisplayMember = "type"
ListBox1.ValueMember = "code type"
ListBox1.DataSource = ObjetDataSet.Tables("[2-RUBRIQUES_locale]")
ObjetConnection.Close()
End Sub |
Remplissage de la deuxième listbox:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
If ListBox1.SelectedIndex <> -1 Then
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= data.mdb;"
strSql = "SELECT [code type1], [code type2], type FROM [2-RUBRIQUES2_locale] WHERE [code type2] = " & ListBox1.SelectedValue.ToString
ObjetConnection = New OleDbConnection
ObjetConnection.ConnectionString = strConn
ObjetConnection.Open()
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetCommand.Connection() = ObjetConnection
ObjetDataAdapter.Fill(ObjetDataSet, "[2-RUBRIQUES2_locale]")
ObjetDataTable = ObjetDataSet.Tables("[2-RUBRIQUES2_locale]")
ListBox2.DisplayMember = "type"
ListBox2.ValueMember = "code type1"
ListBox2.DataSource = ObjetDataSet.Tables("[2-RUBRIQUES2_locale]")
ObjetConnection.Close()
End If
End Sub |
Fonction pour vider la listbox2, je l'ai placer sur un bouton pour le moment:
Code:
1 2 3 4 5 6 7 8
| Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.ListBox2.DataSource = Nothing
ListBox2.Items.clear()
ListBox2.Refresh()
End Sub
End Class |
Est ce que je dois vider le dataset? vu que la requête est rappelée a chaque sélection d'un élément sur la listbox1.
Merci d'avance :)