Anzeige

ListBox "cleart" nicht richtig


Grunge

Erfahrenes Mitglied
#1
Hallo,

ich habe folgendes Problem:
auf einer Form habe ich einen Treeview und eine Listbox, wenn ein ELement aus dem Treeview ausgewählt wird, soll die Listbox mit Werten aus der DB gefüllt werden. Das funktioniert auch prinzipell - jedoch "merkt" sich mein Programm die einmal gespeicherten Daten und ruft sie beim erneuten rückwechsel wieder auf, und fügt sie gleichzeitig nochmal hinzu, so dass die Liste im länger wird, obwohl in der DB eigentlich nicht mehr drinne steht !?

Code sieht wie folgt aus:
Code:
 Private Sub cats_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles cats.AfterSelect
sqlQRY = "SELECT * FROM action WHERE tier='" & animalid & "' AND owner='" & id & "'"
        conn = New MySqlConnection(cnString)
        conn.Open()
        da = New MySqlDataAdapter(sqlQRY, conn)
        da.Fill(ds, "action")
        conn.Close()
        Me.ListBox1.Items.Clear()


        For i = 0 To ds.Tables("action").Rows().Count - 1

            If ds.Tables("action").Rows(i).Item(1) = animalid Then


                Dim datum As String
                Dim datum2 As String
                datum = ds.Tables("action").Rows(i).Item(5)
                datum2 = datum.Substring(0, 2) & "." & datum.Substring(3, 2) & "." & datum.Substring(6, 4)

                ListBox1.Items.Add(datum2 & " - " & ds.Tables("action").Rows(i).Item(2) & " - " & ds.Tables("action").Rows(i).Item(4))
            End If

        Next

end sub
"cats" is mein treeview
 

MCoder

Premium-User
#2
Hallo Grunge,

in deinem Code sehe jetzt keinen Fehler. Du solltest mal überprüfen, ob der Eventhandler nicht vielleicht mehrfach aufgerufen wird. Evt. wird er irgendwie noch mal registriert.


Gruß
MCoder
 

Grunge

Erfahrenes Mitglied
#3
Ne das passiert nicht - deswegen wunderts mich ja!
das gleiche passiert auch bei meinem chart das sich auch jedesmal neu zeichnet nach wechseln eine TV eintrages. Keiner einer Idee?
 
Zuletzt bearbeitet:

ksk

Erfahrenes Mitglied
#4
Und wo setzt du das DataSet zurück???
Probier mal
Code:
Private Sub cats_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles cats.AfterSelect
sqlQRY = "SELECT * FROM action WHERE tier='" & animalid & "' AND owner='" & id & "'"
        // Bevor die Zuweisung erfolgt das DataSet zurücksetzen
        ds = new Dataset();
        conn = New MySqlConnection(cnString)
Lg
ksk
 
Anzeige
Anzeige