我需要在表中更新一个字段,其中id等于用户选择的值。我接受并拒绝按钮,当我按下接受时,它会在表格中添加YES,而当我按下拒绝时则为NO。我似乎遇到了查询问题。 这是我的代码:
protected void AcceptButton_Click(object sender, EventArgs e)
{
string accepted = "YES";
SqlCommand cmd = new SqlCommand("UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"')");
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@Accept", accepted);
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
Response.Redirect("~/Account/PassengerDashboard.aspx");
}
我得到的错误是
System.Data.dll中出现'System.Data.SqlClient.SqlException'类型的异常,但未在用户代码中处理 附加信息:')'附近的语法不正确。
答案 0 :(得分:1)
不正确:
"UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"')"
正确:
"UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"';"
我不得不同意ADyson。这将使您容易受到SQL注入攻击。请查看Entity Framework或其他选项。
答案 1 :(得分:0)
尝试以下
SqlCommand cmd = new SqlCommand("UPDATE Journey SET AcceptedJourney = @Accept WHERE JourneyId = '"+AcceptJourney.SelectedValue+"';");