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块异常!
'USER'是一个关键字。改为使用'[USER]'。 –
用户也是一个关键字?真的吗? – Skemelio
看一看本页:[保留关键字(Transact-SQL)](https://msdn.microsoft.com/en-us/library/ms189822.aspx) –