"insert into" 命令中出现奇怪的错误?

Weird error in "insert into" command?

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

每次我尝试运行这段代码时,我都会遇到语法错误。

知道为什么吗?

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

desc 也是一个关键字(用于降序),因此您需要:

String query = "insert into category ([name],[desc]) values (@1,@2)";

像这样更改您的 insert 查询,

String query = "insert into category ([name], [desc]) values (@1,@2)";

desc 默认为保留字。另外,请在执行命令后con.Close();关闭连接。