我有一个使用SqlCommand功能进行sql注入防护的插入sql语句,但它给出了错误:多部分标识符“System.Web.UI.HtmlControls.HtmlInputText”无法绑定。我使用相同的SqlCommand功能来更新相同的表格,但是,下面的这个简单插入提供了该错误。谁能帮忙?无法绑定多部分标识符“System.Web.UI.HtmlControls.HtmlInputText”
sSql = "INSERT INTO [camss].[dbo].[tb_ds0402req] ([ds0402_key] ,[lname]) " +
"VALUES (" + Session["DS0402Key"] + "," + @VisitorLName + ");";
try
{
using (SqlCommand cmd = new SqlCommand(sSql, conn))
{
cmd.Parameters.AddWithValue("@VisitorLName", VisitorLName.Value);
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
//error handling code
}
构建'sSql'的方式似乎容易受到SQL注入的影响。你认为[Bobby Tables](http://xkcd.com/327/)可能是你的用户之一吗? – 2012-03-22 02:45:24
准备好的语句除非将每个变量值放入参数中,否则不会有多大帮助。例如,在这种情况下,您会说'VALUES(@ DS0402Key,@VisitorLName)',并以'@ VisitorLName'的相同方式向该命令添加参数'@ DS0402Key'。 – cHao 2012-03-22 02:52:25