Beim Ausführen eines Befehls wirft MySQL Datenbank komischen fehler aus: INSERTÂ INTOÂ

  • VB.NET

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

    Beim Ausführen eines Befehls wirft MySQL Datenbank komischen fehler aus: INSERTÂ INTOÂ

    Folgender Quellcode in meinem Programm schreibt einen Befehl in eine MySQL Datenbank...

    VB.NET-Quellcode

    1. Dim sqlquery = "INSERT INTO Chat (Nachricht,User,Datum,Uhrzeit,ID) VALUES ('" + TextBox_send.Text + "','" + TextBox1.Text + "','" + My.Computer.Clock.LocalTime.ToShortDateString.ToString + "','" + My.Computer.Clock.LocalTime.ToLongTimeString.ToString + "','" + Val(My.Settings.Serverversion.ToString + 1).ToString + "')"
    2. Dim command As New MySqlCommand
    3. command.Connection = MySqlConnection
    4. command.CommandText = sqlquery.ToString
    5. Myadapter.SelectCommand = command
    6. Dim mydata As MySqlDataReader = command.ExecuteReader


    Folgendes wird von dem Programm nach dem ausführen des oberen Quelltextes an die Datenbank gesandt.

    SQL-Abfrage

    1. INSERT INTO Chat (Nachricht,User,Datum,Uhrzeit,ID) VALUES ('test','Thomas','14.09.2013','22:44:07','5')


    Dabei tritt jedoch ein fehler auf.
    Spoiler anzeigen
    MySql.Data.MySqlClient.MySqlException (0x80004005): 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 'INSERT INTO Chat (Nachricht,User,Datum,Uhrzeit,ID) VALUES ('adsf','Thomas','' at line 1
    bei MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    bei MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
    bei MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
    bei MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
    bei MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
    bei WebChat_Test_1.Form1.Button_Send_Click(Object sender, EventArgs e) in C:\Users\Thomas\Documents\Visual Studio 2012\Projects\WebChat_Test_1\WebChat_Test_1\Form1.vb:Zeile 355.


    Kopiere ich den Befehl den das Programm an MySQL schickt und führe ihn manuell aus tritt in phpMyAdmin folgender fehler auf:
    #1064 - 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 'INSERTÂ INTOÂ Chat (Nachricht,User,Datum,Uhrzeit,ID)Â VALUESÂ ('asdf','Thomas','' at line 1

    Füge ich aber diesen Befehl zuerst in irgendeine freie zeile (z.b. Google ;) ) ein und kopiere diese anschliessend wieder aus dieser heraus funktioniert der Befehl einwandfrei:
    1 Datensatz eingefügt. (Die Abfrage dauerte 0.1080 Sekunden)

    Irgendwelche Idean was ich falsch mache?