关键字“更新”附近的语法不正确

时间:2017-05-01 19:16:39

标签: c# sql

我目前正在制作一个具有更新系统的软件,某个用户会创建更新,然后将该更新存储在数据库中,以供能够看到它的任何人使用。但是,当我尝试更新时,我收到错误代码:

“更新”

附近的语法不正确

使用的代码是:

private void btnSetUpdate_Click(object sender, EventArgs e)
    {
        if (cmboxClassUpdate.SelectedItem == null || rtbSetUpdate.Text == null)
        {
            MessageBox.Show("Please make sure you have selected a class and made an update");
        }
        else
        {
            con.Open();
            cmd = new SqlCommand("INSERT INTO Updates (User_ID,Update,Date,Class) VALUES (@User_ID,@Update,@Date,@Class) ", con);
            cmd.Parameters.AddWithValue("@User_ID", FrmLogIn.User_ID);
            cmd.Parameters.AddWithValue("@Update", rtbSetUpdate.Text);
            cmd.Parameters.AddWithValue("@Date", DateTime.Now.ToString("M/d/yyyy"));
            cmd.Parameters.AddWithValue("@Class", cmboxClassUpdate.SelectedItem.ToString());
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }

如果有人可以看一看这个并告诉我是否有任何明显的错误我都看不到(我是数据库的新手)。如果我不清楚什么,请告诉我。

任何答案都表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:4)

'更新'是保留关键字。您可以使用保留关键字作为列名,但是当您引用它们时,您需要将它们括在括号中以避免混淆命令解析器。

尝试将SQL命令更改为:" INSERT INTO更新([User_ID],[Update],[Date],[Class])VALUES(@ User_ID,@ Update,@ Date,@ Class)&# 34。

将其他列名括在括号中是可选的。 DATE也是一个类型名称,但我相信它可以用作列名而不会引起问题(可能仍然是一个好主意将它括在括号中)。