我知道这可能听起来像垃圾,但那是事实。
每当我尝试运行此代码时,都会出现语法错误。
任何想法为什么?
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Rock.accdb";
con.Open();
String query = "insert into category ([name],desc) values (@1,@2)";
OleDbCommand cmd = new OleDbCommand(query, con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@1", textBox1.Text);
cmd.Parameters.AddWithValue("@2", textBox2.Text);
cmd.ExecuteNonQuery();
textBox1.Text = null;
textBox2.Text = null;
label4.Text = "New Category Created";
label4.ForeColor = Color.Green;
错误是:INSERT INTO语句中的语法错误@ cmd.ExecuteNonQuery();
答案 0 :(得分:4)
desc 也是一个关键字(用于降序),因此您需要:
String query = "insert into category ([name],[desc]) values (@1,@2)";
答案 1 :(得分:1)
像这样更改您的insert
查询,
String query = "insert into category ([name], [desc]) values (@1,@2)";
默认情况下,desc是保留字。另外,请在执行命令后按con.Close();
关闭连接。