我已经遇到这个错误一段时间了,但仍然无法解决它。我正在尝试更新数据库中的数据,只需在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();
}
如果有人知道什么是错的,请告诉我。
答案 0 :(得分:2)
您正在追加
mainmenu.tbxSelected
虽然我怀疑你的意图是追加
mainmenu.tbxSelected.Text
前者可能会在WHERE子句中产生一个完全限定的typename,它包含逗号。
顺便说一下,您应该知道以这种方式构造SQL会让您可能对SQL注入攻击开放。如果这是一个问题,您最好考虑使用存储过程或ORM工具(例如实体框架)。