再次按照问题:我们是否真的需要将数字数据类型变量值作为参数传递以防止 sql 注入。
我确实有两个示例函数,一个带参数,下一个不使用参数
function CheckThis(int UIN)
{
var connect = ConfigurationManager.ConnectionStrings["NorthWind"].ToString();
var query = "Select * From Products Where ProductID = @ProductID";
using (var conn = new SqlConnection(connect))
{
using (var cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add("@ProductID", SqlDbType.Int);
cmd.Parameters["@ProductID"].Value = UIN;
conn.Open();
//Process results
}
}
}
或遵循正常
function CheckThis(int UIN)
{
var connect = ConfigurationManager.ConnectionStrings["NorthWind"].ToString();
var query = "Select * From Products Where ProductID = " + UIN;
using (var conn = new SqlConnection(connect))
{
using (var cmd = new SqlCommand(query, conn))
{
//cmd.Parameters.Add("@ProductID", SqlDbType.Int);
//cmd.Parameters["@ProductID"].Value = UIN;
conn.Open();
//Process results
}
}
}