得到错误“语法不正确','”

时间:2017-07-21 09:51:31

标签: c# sql-server syntax-error

我已经遇到这个错误一段时间了,但仍然无法解决它。我正在尝试更新数据库中的数据,只需在Windows窗体中按一下按钮。

我正在使用SQL Server 2011。

private void btnEdit_Click_1(object sender, EventArgs e)
{
    MainMenu mainmenu = new MainMenu();
    SqlCommand cmd = new SqlCommand("Update PresentationSpec SET Pres_name = @Pres_name, Prestor_name = @Prestor_name, Pres_Summary = @Pres_Summary, Est_Length = @Est_Length, Date_Presented = @Date_Presented WHERE Id=" + mainmenu.tbxSelected);
    cmd.Connection=connection;
    connection.Open();
    cmd.Parameters.AddWithValue("@Pres_name", tbxpresName.Text);
    cmd.Parameters.AddWithValue("@Prestor_name", tbxprstorName.Text);
    cmd.Parameters.AddWithValue("@Pres_Summary", rtbSummary.Text);
    cmd.Parameters.AddWithValue("@Est_Length", tbxLength.Text);
    cmd.Parameters.AddWithValue("@Date_Presented", tbxDate.Text);
    cmd.ExecuteNonQuery();
    this.Close();
    Form2 editscreen = new Form2();
    Refresh();
}

如果有人知道什么是错的,请告诉我。

1 个答案:

答案 0 :(得分:2)

您正在追加

mainmenu.tbxSelected

虽然我怀疑你的意图是追加

mainmenu.tbxSelected.Text

前者可能会在WHERE子句中产生一个完全限定的typename,它包含逗号。

顺便说一下,您应该知道以这种方式构造SQL会让您可能对SQL注入攻击开放。如果这是一个问题,您最好考虑使用存储过程或ORM工具(例如实体框架)。