SQL注入的解决方案有好几种,待我细细研究过之后逐一讲解。
方法一:SqlParameter方法
这里有一篇博客是详细介绍SqlParameter的,可以看看 点我
string sqlStr="select * from Table where Id=@AutoID";
SqlParameter[] parameters = { new SqlParameter("@AutoID", SqlDbType.Int,4) }; parameters[0].Value = AutoID;
cmd.Parameters.Add(parameters); //如此调用
如果参数不止一个的话,就多new几个,然后使用AddRange()方法就可以。
大概就是上面代码的那样子是最常使用的。
SqlParameter方法的原理呢,就是参数化查询时,用户输入的参数仅仅作为参数而永远不会作为查询语句的一部分
什么意思呢?直白的讲,参数化之后,用户输入的东西仅仅的SQL语句的参数,在执行的时候加上 '' 它仅仅作为参数,不会变成SQL逻辑语句的一部分。