MySQL Update fehler in SQL syntax

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Bassdriver.

    MySQL Update fehler in SQL syntax

    Hallo zusammen,

    ich versuche mich zurzeit ein bisschen mit MySQL in VB.Net auseinander zu setzen...

    Ich habe mich mal an dieses Tut gehalten

    Allerdings wenn ich versuche einen Benutzer zu bearbeiten mit "Update" kommt immer wieder ein Fehler auf:

    VB.NET-Quellcode

    1. Dim conn As MySqlConnection
    2. conn = New MySqlConnection
    3. conn.ConnectionString = "server=********;" & "user id=******;" & "password=*******;" & "database=*******;"
    4. Try
    5. conn.Open()
    6. Catch myerror As MySqlException
    7. Cursor = Cursors.Default
    8. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString)
    9. GoTo ende
    10. End Try
    11. Dim myAdapter As New MySqlDataAdapter
    12. Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE id='" + TextBox3.Text + "'"
    13. Dim myCommand As New MySqlCommand
    14. myCommand.Connection = conn
    15. myCommand.CommandText = SQLAbfrage
    16. myAdapter.SelectCommand = myCommand
    17. Dim myData As MySqlDataReader
    18. myData = myCommand.ExecuteReader()
    19. conn.Close()
    20. conn.Open()
    21. Dim registerfinal As New MySqlDataAdapter
    22. Dim benutzer As String = (TextBox1.Text)
    23. Dim passwort As String = (TextBox5.Text)
    24. Dim anzeigename As String = (TextBox2.Text)
    25. Dim id As String = (TextBox3.Text)
    26. myCommand.CommandText = "UPDATE benutzer SET loginname='" & (benutzer) & "', anzeigename='" & (anzeigename) & "', passwort='" & (passwort) & "', WHERE id='" & (id) & "'"
    27. myCommand.ExecuteNonQuery()
    28. MsgBox("Der Account mit dem Namen : " & TextBox2.Text & " wurde erfolgreich bearbeitet")
    29. conn.Close()



    Und zwar bei:

    VB.NET-Quellcode

    1. myCommand.ExecuteNonQuery()



    Fehler:

    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='2'' at line 1"



    Was hat das zu bedeuten? ?(
    zeile 13 ist doch dein problem wenn ich nicht irre

    mache mal deine zeile 13 so

    VB.NET-Quellcode

    1. ' Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE id='" + TextBox3.Text + "'"


    und das hier als neue zeile 14

    VB.NET-Quellcode

    1. Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE id=1"


    sprich lass die textbox3 weg und nimm einen statischen wert dann weist du ob das grundsätzlich geht
    wenn es nicht geht kompletten fehler posten pls

    edit : was ich immer gerne mache bei sql abfragen ich lasse sie mir so wie sie an den server gesendet werden in
    eine richtextbox ausgeben und copy paste es von hand in die db um zu sehen ob es ansich geht oder der sql string
    schon einen fehler hat ( nur eine möglichkeit ) ist so ne art debugconsole

    "UPDATE benutzer SET loginname='" & (benutzer) & "', anzeigename='" & (anzeigename) & "', passwort='" & (passwort) & "', WHERE id='" & (id) & "'"


    Da sind (vermutlich) 2 Fehler drinnen:

    1. Das Komma vor dem WHERE ist falsch. Nimm das auf jeden Fall raus.

    2. Wenn id in der Datenbank als Zahl deklariert ist, dann darfst Du keine Hochkommas nutzen. Die Hochkommas umfassen immer einen Inhalt vom Typ Text. Da ist SQL extrem pingelig ... '1' ist ein Text-Type und kann nicht in eine Column die als Datentyp einen Zahlenwert erwartet eingefüllt werden. Ist id in der Datenbank allerdings als Text bereits deklariert, dann ist es kein Fehler sondern richtig so.

    Gruß

    Rainer