"插入"中的奇怪错误命令?

时间:2015-03-04 06:45:19

标签: c# visual-studio-2012

我知道这可能听起来像垃圾,但那是事实。

每当我尝试运行此代码时,都会出现语法错误。

任何想法为什么?

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();

2 个答案:

答案 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();关闭连接。