Datanbankabfrage + ausgabe

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von HerrFrie.

    Datanbankabfrage + ausgabe

    Hallo Leute,
    hab jetzt überall gesucht und geguckt (auch in openbooks) und hab nichts dazu gefunden wie ich eine datenbankabfrage machen kann und das ergebnis in einer textbox ausgeben kann...

    Also mein Code sieht momentan so aus

    VB.NET-Quellcode

    1. Private Sub Button122_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button122.Click
    2. Dim SQLStr As String
    3. SQLStr = "Select Spiel From tabelle1 WHERE Spiel = '" & TextBox1.Text & "';"
    4. End Sub


    Ich weiß da fehlt noch was :D aber ich find einfach keine Lösung...
    Ich hoffe jemand kann mir helfen
    Danke, du hast mir wirklich den Tag gerettet.
    Aber komisch das ich das nicht gefunden hab...
    :thumbsup:

    Ok er zeigt mir zwar keine Fehler an, aber er kann Einträge in der Datenbank einfach nicht finden.

    Mein Code sieht so aus:

    VB.NET-Quellcode

    1. Private Sub Button124_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button124.Click
    2. Dim con As New OleDb.OleDbConnection
    3. Dim cmd As New OleDb.OleDbCommand
    4. Dim reader As OleDb.OleDbDataReader
    5. Dim Spiel As String = ""
    6. Dim Mirror1 As String = ""
    7. Dim Mirror2 As String = ""
    8. Dim Mirror3 As String = ""
    9. Dim Mirror4 As String = ""
    10. Dim Vorhanden As Boolean
    11. con.ConnectionString = "Provider=Microsoft.Ace.OLEDB.12.0;" & "Data Source=gamesDB.accdb"
    12. cmd.Connection = con
    13. Try
    14. cmd.CommandText = "Select Spiel, Mirror 1, Mirror 2, Mirror 3, Mirror 4 from Tabelle1 where Spiel = '" & TextBox2.Text & "'"
    15. con.Open()
    16. reader = cmd.ExecuteReader()
    17. Do While reader.Read
    18. Spiel = reader("Spiel")
    19. Mirror1 = reader("Mirror 1")
    20. Mirror2 = reader("Mirror 2")
    21. Mirror3 = reader("Mirror 3")
    22. Mirror4 = reader("Mirror 4")
    23. If Spiel = TextBox2.Text Then
    24. Vorhanden = True
    25. Else
    26. Vorhanden = False
    27. End If
    28. Loop
    29. reader.Close()
    30. con.Close()
    31. Catch ex As Exception
    32. MsgBox(ex.Message)
    33. End Try
    34. If Vorhanden = False Then MsgBox("Das Spiel konnte in der datenbank nicht gefunden werden")
    35. End Sub


    Ich kann den Fehler einfach nicht finden, weiß jemand was daran falsch ist?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rinecamo“ ()

    Was genau funktioniert denn nicht ?

    Bekommst du eine Fehlermeldung und wenn, welche ?

    Findet er das Spiel, zeigt aber sonst nichts an ?
    Aus Erfahrung weiß ich, dass es mit dem Leerzeichen zwischen Mirror und der Zahl Probleme geben kann. Hier könntest du zum Testen mal die Zahlen der Spalte direkt an das Mirror hängen. In der Datenbank und im Programm.
    für die Mirror's hab ich ja noch gar keine abfragen gemacht ;)...
    wie ich auch oben schon gesagt hab, bekomm ich keine fehlermeldungen, ich hab die datenbank mit dem projekt verbunden und das dataset hinzugefügt, und wenn ich jetzt ein spiel suchen will kommt die fehlermeldung die ich in meinem projekt genommen hab ("Das Spiel konnte in der Datenbank nicht gefunden werden")
    Hast du dir mal anzeigen lassen, was er ließt ? Wieviel Daten stehen denn in der Datenbank drinnen ?

    Oder du läßt dir mal anzeigen, was er überhaupt alles ließt.
    Leg mal eine Listbox in den Designer und lass diese mit den Daten füllen.

    VB.NET-Quellcode

    1. Do While reader.Read
    2. Spiel = reader("Spiel")
    3. ListBox1.Items.Add(Spiel)
    4. Loop
    Wenn dort nichts drinnen steht, könntest du die WHERE Klausel mal aus dem SELECT Befehl raus machen und schauen, ob er überhaupt etwas ließt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „HerrFrie“ ()

    Ne, bei beiden Sachen zeigt er nichts an...

    Ich hab das ganze jetzt mal in vb 2008 veruscht und bei beiden Access datenbank typen (.mdb .accdb) kommt entweder "Der Microsoft.Ace.12.0-Provider ist nicht auf ihrem Computer registriert" und "Der Microsoft.Jet.4.0-Provider ist nicht auf ihrem Computer registriert"
    könnte es vielleicht daran liegen?
    Wenn ja wie kann ich das beheben?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Rinecamo“ ()

    ja ich hab Windows 7 64 bit
    Der Fehler lag darin:

    VB.NET-Quellcode

    1. If Spiel = TextBox2.Text Then
    2. Vorhanden = True
    3. Else
    4. Vorhanden = False
    5. End If


    Ich hab dann mal in einem anderen Forum gefragt und hab auch eine gute antwort bekommen:

    VB.NET-Quellcode

    1. If Spiel.ToUpper = TextBox2.Text.ToUpper Then
    2. Vorhanden = True
    3. Else
    4. Vorhanden = False
    5. End If


    das hat dann geklappt
    Access Datenbankzugriffe müssen im Projekt auf eine CPU zugeordnet werden, da es wohl dafür bis jetzt keinen 64bit OleDB Befehl gibt. Wenn dies nicht gemacht worden ist kommt es sonst zu einer Fehlermeldung.

    Ich dachte, dass du dieses Problem hattest, von wegn '... ist auf diesem Computer nicht registriert'

    Das mit .ToUpper ist ja eigentlich nur, dass du alles in Großbuchstaben umwandelst. Also hat vorher dein Suchbegriff nicht mit dem in der Datenbank überein gestimmt, weil du die Klein-/Großschreibung nicht beachtest hattest. Wenn du das .ToUpper weg machst und in den Text in der Textbox genauso rein schreibst wie in der Datenbank, sollte es auch funktioneren. Kannst du ja mal ausprobieren.