更新ASP中的sql所在的表

时间:2016-11-24 14:22:47

标签: c# mysql asp.net

我需要在表中更新一个字段,其中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'类型的异常,但未在用户代码中处理   附加信息:')'附近的语法不正确。

2 个答案:

答案 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+"';");