这是Asp.net按钮代码
<asp:Button ID="Button2" runat="server" Text="Approved Job Request" CssClass="css_button" CommandName="ApplyButton" CommandArgument='<%#Eval("AId")%>' />
这是C#代码
if (e.CommandName == "ApplyButton")
{
int userId = int.Parse(e.CommandArgument.ToString());
SqlConnection con = new SqlConnection("Data Source=Mrunal;Initial Catalog=JobPortalDB;Integrated Security=True");
String sql = "update AppliedJob set AApprove='yes' where AId=userId";
SqlCommand cmd = new SqlCommand(sql,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("~/ReqHome.aspx");
}
使用上面的代码,将错误视为
System.Data.SqlClient.SqlException:无效的列名'userId'
。 怎么办?
答案 0 :(得分:1)
因为更新子句中的条件不正确
你可以这样做:
String sql = "update AppliedJob set AApprove='yes' where AId='"+userId+"'";
但是以上不是SQL注入的强大功能,我几乎不建议使用SQL参数 试试这个:
int userId = int.Parse(e.CommandArgument.ToString());
String sql = "update AppliedJob set AApprove='yes' where AId=@userId";
SqlCommand cmd = new SqlCommand(sql,con);
cmd.Parameters.AddWithValue("@userId", userId);