关键字“用户”附近的语法不正确。错误不断弹出

时间:2019-12-04 15:05:15

标签: c# sql-server

搜索了不同的解决方案,但没有任何效果。我具有用于注册用户的相同代码,并且工作正常,在此代码中找不到问题

SqlConnection sql = new SqlConnection(@"Data Source=(LocalDB) Security=True;Connect Timeout=30");
sql.Open();
cmd = new SqlCommand("INSERT INTO [MenuItem](User, Order1, Order2, Order3, VALUES(@User, @Order1, 
      @Order2, @Order3", sql);
        cmd.Parameters.AddWithValue("@User", label20.Text);
        cmd.Parameters.AddWithValue("@Order1", checkBox1.Text);
        cmd.Parameters.AddWithValue("@Order2", checkBox2.Text);
        cmd.Parameters.AddWithValue("@Order3", checkBox3.Text);
        cmd.ExecuteNonQuery();
        sql.Dispose();

4 个答案:

答案 0 :(得分:1)

USER是T-SQL中的保留关键字;避免将其用作对象名称。如果这样做,则必须定界标识它。 ([User]

您在SQL中也缺少右括号,并带有一个逗号:...Order3) VALUES ...

答案 1 :(得分:1)

我也会引用用户一词:

cmd = new SqlCommand(@"INSERT INTO [MenuItem]([User], Order1, Order2, Order3) 
VALUES(@User, @Order1, @Order2, @Order3)", sql);

通常建议避免使用与保留字相同的列(在SSMS中几乎突出显示所有内容),因为这意味着您必须将名称包装在方括号中,而且相当难看

答案 2 :(得分:0)

由于您缺少一些sudo pypy -m ensurepip sudo pypy -m pip install flask ,因此您的错误属于语法格式。

看看这个查询示例:

)

(请参见other insert examples

答案 3 :(得分:0)

您的错误仅在于查询的语法

这是您的SQL查询的正确语法:

INSERT INTO [dbo].[MenuItem] ([User], [Order1], [Order2], [Order3]) VALUES (@User, @Order1, @Order2, @Order3)

只是一点建议:

即使您可以避免提及“ dbo”,也要使用它,否则您的数据库将不得不搜索它。