2016-07-30 38 views
0

我有一个Access数据库,其中包含一个名为用户的表。该表有两个字段,即短文类型的“用户名”和短文类型的“用户密码”。用户名是主键!“INSERT INTO STATEMENT”的错误在哪里?

我做了一个Windows窗体应用程序,Visual C#,并成功地与数据库连接。

我在第一次访问这个SQL语句运行,

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

正确追加记录到表中。

现在,如果我尝试通过WinForm应用程序执行相同的SQL查询,我得到异常其中谈到一个语法错误在“插入”语句

奇怪的事实是,我已经在一个星期前提出申请,它的工作。

这里是应该追加记录的方法:

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"); 
    } 

我得到的第二个catch块异常!

+6

'USER'是一个关键字。改为使用'[USER]'。 –

+0

用户也是一个关键字?真的吗? – Skemelio

+0

看一看本页:[保留关键字(Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189822.aspx) –

回答

1

USER是关键字。请改用[USER]。 - Reza Aghaei