MySQL Syntaxerror

  • VB.NET

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

    MySQL Syntaxerror

    Bekomme diese Fehlermeldung obwohl eigentlich alles richtig ist

    "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 " at line 1"

    Hoffe mir kann einer helfen

    VB.NET-Quellcode

    1. MysqlConn = New MySqlConnection
    2. MysqlConn.ConnectionString =
    3. "server=127.0.0.1; uid=root; pwd=123; database=test;"
    4. Dim READER As MySqlDataReader
    5. Try MysqlConn.Open() Dim dt = MysqlConn.GetSchema("TABLES")
    6. combo.DataSource = dt combo.DisplayMember = "table_name" combo.ValueMember = "table_name"
    7. MysqlConn.Close()
    8. Catch ex As Exception
    9. MessageBox.Show(ex.Message)
    10. Finally
    11. MysqlConn.Dispose()
    12. End Try




    VB.NET-Quellcode

    1. MysqlConn = New MySqlConnection
    2. MysqlConn.ConnectionString =
    3. "server=127.0.0.1; userid=root; password=123; database=test"
    4. Dim READER As MySqlDataReader
    5. Try
    6. MysqlConn.Open()
    7. Dim Query As String
    8. Query = "select * from " & combo.SelectedValue & " where benutzername='" & user.Text & "' and passwort='" & pass.Text & "'"
    9. COMMAND = New MySqlCommand(Query, MysqlConn)
    10. READER = COMMAND.ExecuteReader
    11. With COMMAND.Parameters
    12. .Add("benutzername", MySqlDbType.VarChar).Value = user.Text
    13. .Add("passwort", MySqlDbType.VarChar).Value = pass.Text
    14. .AddWithValue("@tablename", combo.SelectedItem.ToString())
    15. End With
    16. If READER.Read = True Then
    17. Dim Position As String = READER("rolle")
    18. Dim benutzername As String = READER("benutzername")
    19. Dim email As String = READER("EMail")
    20. Dim version As String = READER("version")
    21. 'Dim meetingw As String = READER("meetingwann")
    22. 'Dim meetingi As String = READER("meetinginfo")
    23. If Position = "Pro" Then
    24. Hide()
    25. 'Frmhauptdunkel.Show()
    26. ElseIf Position = "Admin" Then
    27. adminhaupt.Show()
    28. Hide()
    29. ElseIf Position = "Design" Then
    30. Hide()
    31. ElseIf Position = "Marketing" Then
    32. ElseIf Position = "Basic" Then
    33. Hide()
    34. 'Frmhaupthell.Show()
    35. End If
    36. 'dienstplaner.Label1.Text = dienstnummer
    37. Else
    38. MsgBox("Benutzername und/oder Passwort falsch.", MsgBoxStyle.Information)
    39. End If
    40. MysqlConn.Close()
    41. Catch ex As Exception
    42. MessageBox.Show(ex.Message)
    43. Finally
    44. MysqlConn.Dispose()
    45. End Try
    46. My.Settings.benutzerspeichern = user.Text
    47. My.Settings.passwordspeichern = pass.Text
    48. My.Settings.tablespeichern = combo.SelectedValue
    49. My.Settings.Save()


    *Thema verschoben da es nichts mit WPF zu tun hat - korrekte CodeTags eingefügt* ~NoFear23m
    Nachtrag: Nichtssagenden Titel abgeändert

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

    Werf zunächst das Try-Catch raus, und sag uns dann, was Visual Studio dir ALLES sagt. Die ganze Exception.Und wo sie genau auftritt.

    Soll dass Parameterisiertes SQL sein?

    jando221 schrieb:

    VB.NET-Quellcode

    1. Query = "select * from " & combo.SelectedValue & " where benutzername='" & user.Text & "' and passwort='" & pass.Text & "'"
    2. COMMAND = New MySqlCommand(Query, MysqlConn)
    3. READER = COMMAND.ExecuteReader
    4. With COMMAND.Parameters
    5. .Add("benutzername", MySqlDbType.VarChar).Value = user.Text
    6. .Add("passwort", MySqlDbType.VarChar).Value = pass.Text
    7. .AddWithValue("@tablename", combo.SelectedItem.ToString())
    8. End With
    9. If READER.Read = True Then

    Falls ja, dann musst du die Parameter natürlich vor dem ExecuteReader definieren. Ansonsten bringen die absolut nichts. Außerdem solltest du dann ebenfalls nicht die Werte der Textboxen in den SQL schreiben, sondern Platzhalter einfügen, die dann durch die Parameter überschrieben werden.
    Hi, danke für die Schnelle Antwort.

    Habe das Try-Catch überall raus genommen. Eine Fehlermeldung oder etc. bekomme ich nicht deswegen.

    Zu deiner Frage, Ist soll kein Parameterisiertes SQL sein.
    Es geht zwar alles aber es kommt weiterhin die Fehlermeldung
    "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 " at line 1"

    EDIT: Jetzt kommt keine einzige Fehlermeldung aber kann mich von nun an nicht mehr einloggen. "Benutzername und/oder Passwort falsch" Obwohl alles richtig ist.

    jando221 schrieb:

    Zu deiner Frage, Ist soll kein Parameterisiertes SQL sein.
    Wozu definierst du dann Parameter?

    jando221 schrieb:

    Eine Fehlermeldung oder etc. bekomme ich nicht deswegen.

    jando221 schrieb:

    Es geht zwar alles aber es kommt weiterhin die Fehlermeldung
    Was denn nun?

    Steht dein Code zufällig im Forms_Load Event? Falls ja, dann verschieb den bitte mal in das Forms_Shown Event.
    Moin,

    Die SQL Syntax an sich ist ok, allerdings ist das, was die Commandparameter im Anschluss damit machen, falsch.

    VB.NET-Quellcode

    1. Query = "select * from " & combo.SelectedValue & " where benutzername='" & user.Text & "' and passwort='" & pass.Text & "'"
    2. With COMMAND.Parameters
    3. .Add("benutzername", MySqlDbType.VarChar).Value = user.Text
    4. .Add("passwort", MySqlDbType.VarChar).Value = pass.Text
    5. .AddWithValue("@tablename", combo.SelectedItem.ToString())
    6. End With


    VB.NET-Quellcode

    1. Query = "select * from @tablename where benutzername=@benutzername and passwort=@passwort"
    2. With COMMAND.Parameters
    3. .AddWithValue("@benutzername", user.Text)
    4. .AddWithValue("@passwort", pass.Text)
    5. .AddWithValue("@tablename", combo.SelectedItem.ToString())
    6. End With

    @jando221
    Herzlich Willkommen im Forum erstmal.
    Ich lege dir die Forenregeln ans Herz.
    Wenn du mal 10 Minuten Zeit findest lese diese bitte kurz durch, einfach damit du bescheid weist.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Bin sehr am verzweifeln :(
    Sobald ich die UserControls in einer Form einbinde, habe ich wieder dass selbe Problem mit dem "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 " at line " obwohl ja eigentlich alles richtig ist.
    Und sobald ich bei der Fehlermeldung auf OK klicke, schließt sich direkt Visual Studio.

    Kann evtl. einer mal drüber schauen via TeamViewer?

    Würde mich echt freuen.

    jando221 schrieb:

    Kann evtl. einer mal drüber schauen via TeamViewer?


    Du kannst ja auch gerne das Projekt hochladen. Via Erweiterte Antwort -> Dateianhänge
    Das Projekt Zippen und los gehts. Bitte den "Bin" Ordner nicht mit hochladen. (Erstellen -> Projektmappe bereinigen)

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @jando221
    Da du neu bist ist das diesmal OK. Bitte das nächste mal vorher überlegen ob du ein Projekt Postest oder nicht, kurz darauf wieder zu löschen geht nicht. Niemand kann bei diesen Posts irgendetwas nachvollziehen.
    Auch das Pushen nach gerademal einer Stunde unterlasse bitte. Die Leute hier Helfen in Ihrer Freizeit, respektiere dies bitte.


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Leute wollte mich bei euch bedanken für die tolle Hilfe!

    Ich habe es mittlerweile hinbekommen.

    Und wie?
    Ich habe die UserControls entfernt und eine stink normale WinForm genommen darauf halt das gleiche gebastelt und im Anschluss das so gemacht, dass die WinForm in ein Panel angezeigt wird.

    So habe ich das gemacht:

    Quellcode

    1. panelanzeige.Controls.Clear()
    2. kundenver.TopLevel = False
    3. panelanzeige.Controls.Add(kundenver)
    4. kundenver.Visible = True
    5. panelanzeige.Visible = True


    Jetzt bekomme ich auch keine Fehlermeldung mehr :)

    Vielen lieben Dank für euer freundliches helfen!