代码之家  ›  专栏  ›  技术社区  ›  Project Team

“insert into”命令中的奇怪错误?

  •  0
  • Project Team  · 技术社区  · 10 年前

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

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

    知道为什么吗?

    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.ExecutNonQuery()中的语法错误;

    2 回复  |  直到 10 年前
        1
  •  4
  •   Ceisc    10 年前

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

    String query = "insert into category ([name],[desc]) values (@1,@2)";
    
        2
  •  1
  •   SelvaS    10 年前

    更改您的 insert 像这样的查询,

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

    默认情况下,desc是保留字。此外,请在 con.Close(); 在执行命令之后。