2016-08-15 2 views
-2

Warum funktioniert es, wenn ich diesen Code ausführe, in der Datenbank, aber wenn ich die ListBox anschaue, sind alle darin enthaltenen Elemente verschwunden. Wenn ich zum Beispiel 3 Elemente anlege, führe den folgenden Code aus, wenn ich die Datenbank überprüfe, die gerade aktualisiert wurde, aber die Listbox selbst wird leer. Und es zeigt einen Fehler, dass der Index nicht akzeptabel ist.Können die Elemente der ListBox nicht angezeigt werden, nachdem der Code selbst erfolgreich war?

Hier ist mein Code:

 For i As Integer = 0 To ListBox1.Items.Count - 1 

       Dim l_text As String = CStr(ListBox1.Items(i)) 

       MysqlConn.ConnectionString = ServerString 
       Dim dbDataSet As New DataTable 
       Dim SDA As New MySqlDataAdapter 

       Dim bSource As New BindingSource 
       Dim READER As MySqlDataReader 
       Dim query As String 

       MysqlConn.Open() 
       query = "select * from test.subject where subject_name= '" + l_text + "'" 
       COMMAND = New MySqlCommand(query, MysqlConn) 
       READER = COMMAND.ExecuteReader 

       While READER.Read 
        slot = READER.GetInt32("subject_slot") 

        slot = slot - 1 

        Label1.Text = "" 
        Label5.Text = "" 
       End While 

       MysqlConn.Close() 


       MysqlConn.Open() 

       query = "UPDATE test.subject SET subject_slot='" & slot & "' WHERE subject_name= '" + l_text + "'" 
       COMMAND = New MySqlCommand(query, MysqlConn) 
       READER = COMMAND.ExecuteReader 

       ListBox1.Items.Clear() 
       MysqlConn.Close() 


      Next 


      MsgBox("ENROLLMENT SUCCESSFUL") 
      MsgBox("ALL SUBJECTS SELECTED ARE ENROLLED") 
      load_table() 
+0

Postleitzahl nur als Text bitte. Fehlermeldungen auch. – Blorgbeard

+1

Wenn Sie Hilfe benötigen, sollten Sie den tatsächlichen Code veröffentlichen, niemand kann ein Bild ausschneiden und einfügen. – FloatingKiwi

Antwort

1

Haben Sie wirklich darüber nachgedacht, was Sie tatsächlich versuchen, es zu erreichen? Sehen Sie sich diese zwei Codezeilen an. Hier ist Ihre Schleife:

For i As Integer = 0 To ListBox1.Items.Count - 1 

und hier ist eine Linie, die innerhalb dieser Schleife ist:

ListBox1.Items.Clear() 

Wenn Sie deaktivieren Sie das ListBox auf der ersten Iteration dieser Schleife dann natürlich den Index, den Sie auf der zweiten Iteration verwenden , dh 1, wird ungültig sein. Jeder Index wäre ungültig, da keine Elemente vorhanden sind, weil Sie gelöscht haben.

Sie müssen aufhören und darüber nachdenken, was diese Schleife tatsächlich tun soll. Nehmen Sie Stift und Papier auf und schreiben Sie es auf, wenn Sie es brauchen, aber der Code, den Sie haben, macht keinen Sinn. Entweder Sie haben sich nicht die Mühe gemacht, den Code zu lesen oder zu debuggen, um zu bestätigen, dass er Ihren Erwartungen entspricht sind unsinnig.

Verwandte Themen