2016-07-30 14 views
0

Ich habe eine Access-Datenbank, die eine Tabelle mit dem Namen Benutzer enthält. Diese Tabelle hat zwei Felder, "Benutzername" vom Typ shorttext und "userpassword" vom Typ shorttext. Der Benutzername ist der Primärschlüssel!Wo ist der Fehler mit "INSERT INTO STATEMENT"?

Ich machte eine Windows-Formularanwendung, Visual C#, und erfolgreich mit der Datenbank verbunden.

ich zuerst diese SQL-Anweisung in Access ausführen,

"INSERT INTO USER(USERNAME,USERPASSWORD) VALUES('Tom','1234')" 

und korrekt fügt den Datensatz in der Tabelle.

Nun, wenn ich versuche, die gleiche SQL-Abfrage durch die winform Anwendung auszuführen bekomme ich eine Ausnahme die über einSyntaxfehler in dem „Einfügen in“ Erklärung spricht!

Seltsame Tatsache ist, dass ich einen Antrag vor einer Woche gestellt habe und es funktioniert hat.

Dies ist die Methode, die den Datensatz anhängen soll:

public void insertNewUser() 
    { 
     String sqlQuery = "INSERT INTO USER(USERNAME,USERPASSWORD) VALUES('malmo','1234')"; 
     OleDbCommand cmd = new OleDbCommand(sqlQuery, this.conn); 
     int rowsAffected = 0; 
     try 
     { 
      rowsAffected = cmd.ExecuteNonQuery(); 
      System.Windows.Forms.MessageBox.Show("User inserted in database successfully!", "Debug:AppDatabase:insertNewUser"); 
     } 
     catch (System.InvalidOperationException ex) 
     { 
      System.Windows.Forms.MessageBox.Show("User did not inserted in database", "Debug:AppDatabase:insertNewUser"); 
      System.Windows.Forms.MessageBox.Show(ex.Message, "Debug:AppDatabase:insertNewUser"); 
     } 
     catch (System.Data.OleDb.OleDbException ex) 
     { 
      System.Windows.Forms.MessageBox.Show(ex.Message, "Debug:AppDatabase:insertNewUser"); 
     } 
     System.Windows.Forms.MessageBox.Show(rowsAffected.ToString(), "RowsAffected"); 
    } 

ich die Ausnahme in der zweiten catch-Block erhalten!

+6

'USER' ist ein Schlüsselwort. Verwenden Sie stattdessen "[USER]". –

+0

Benutzer auch ein Schlüsselwort? Wirklich jetzt? – Skemelio

+0

Werfen Sie einen Blick auf diese Seite: [Reservierte Schlüsselwörter (Transact-SQL)] (https://msdn.microsoft.com/en-us/library/ms189822.aspx) –

Antwort

1

USER ist ein Schlüsselwort. Verwenden Sie stattdessen [USER]. - Reza Aghaei