Werte aus DB auslesen und als Text in Labels darstellen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von GarthB.

    Werte aus DB auslesen und als Text in Labels darstellen

    Wie der Titel schon sagt versuche ich mehrere Strings aus einer Access Datenbank auszulesen und in Labels zu schreiben.

    Ich versuche das ganze mit folgendem Code:

    VB.NET-Quellcode

    1. dr = comm.ExecuteReader
    2. Do While dr.Read()
    3. Me.Controls("L_Spieler_" & k).Text = dr(0).ToString
    4. k = k +1
    5. Loop




    Aber mir wird die Fehlermeldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" ausgegeben.



    Hat jemand eine Ahnung was ich Falsch mache??

    VB.NET-Quellcode

    1. Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0; Data Source = D:\AA\AA_Hosn_owi\AA_Datenbank.accdb")
    2. Dim comm As OleDb.OleDbCommand
    3. Dim dr As OleDb.OleDbDataReader
    4. comm = New OleDb.OleDbCommand("select CupNr from " & strBezeichnung & " where Tisch_Runde" & intRunde & " = " & intTisch, conn)
    5. Try
    6. conn.Open()
    7. dr = comm.ExecuteReader
    8. Do While dr.Read()
    9. Me.Controls("L_Spieler_" & k).Text = dr("CupNr").ToString
    10. k = k + 1
    11. Loop
    12. Catch ex As Exception
    13. MsgBox(ex.Message)
    14. End Try
    In welcher Zeile tritt der Fehler auf?

    Und um was in Labels oder Listboxen auszugeben mache ich das immer so:

    VB.NET-Quellcode

    1. reader = cmd.ExecuteReader()
    2. label1.Items.Clear()
    3. Do While reader.Read()
    4. label1.Items.Add(
    5. reader("Spalte"))
    6. Loop
    7. reader.Close()
    Das SQL liefert mir 5 Werte zurück die ich alle separat in die Labels schreiben möchte. Ich möchte kein neues Label erstellen sondern einfach den Wert der SQL zuweisen.

    Der Fehler tritt in Me.Controls("L_Spieler_" & k).Text = Reader(0).ToString auf

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles newsbutton.Click
    2. options.Visible = False
    3. webframe.Visible = False
    4. newspanel.Visible = True
    5. Dim con As New MySqlConnection("user id=[user];password=[user pw];host=[dein host];database=[deine table];port=3306")
    6. Dim CMD As New MySqlCommand
    7. Dim reader
    8. Dim news As New List(Of String)
    9. Try
    10. con.Open()
    11. CMD.CommandText = "SELECT `By` FROM `motd` ORDER BY `ID` DESC LIMIT 0, 5"
    12. reader = CMD.ExecuteReader
    13. news.Clear()
    14. Do While reader.Read
    15. news.Add(reader("By").ToString)
    16. Loop
    17. reader.Close()
    18. con.Close()
    19. nh1.Text = news.Item(0)
    20. nh2.Text = news.Item(1)
    21. nh3.Text = news.Item(2)
    22. nh4.Text = news.Item(3)
    23. nh5.Text = news.Item(4)
    24. con.Open()
    25. CMD.CommandText = "SELECT `Message` FROM `motd` ORDER BY `ID` DESC LIMIT 0, 5"
    26. reader = CMD.ExecuteReader
    27. news.Clear()
    28. Do While reader.Read
    29. news.Add(reader("Message").ToString)
    30. Loop
    31. reader.Close()
    32. con.Close()
    33. nc1.Text = news.Item(0)
    34. nc2.Text = news.Item(1)
    35. nc3.Text = news.Item(2)
    36. nc4.Text = news.Item(3)
    37. nc5.Text = news.Item(4)
    38. Catch ex As Exception
    39. con.Close()
    40. MsgBox(ex.Message)
    41. End Try
    42. End Sub


    Musst es nur auf deine Sachen anpassen. Ich habe in dem script aller dings ein connection problem. Also falls du den fehler auch hast, bzw eine lösung, würde mich freuen^^