这个代码和那个代码有什么区别???
这个代码和那个代码有什么区别???
----------------------
代码一:
string strSel2 = "select * from qz where qz_id=@Id ";
SqlCommand myCommand = new SqlCommand(strSel2,MyConnection);
myCommand.Parameters.Add(new SqlParameter( "@Id ",11));
myCommand.Parameters[ "@Id "].Value = Request.QueryString[ "qz_id "];
==============================================
代码二:
string strSel2 = "select * from qz where qz_id= ' "+Request.QueryString[ "qz_id "]+ " ' ";
SqlCommand myCommand = new SqlCommand(strSel2,MyConnection);
====================================
这两个代码效果一样,哪种好些???
[解决办法]
代码一用到了SQL参数绑定, 这样的SQL语句可以使用危险字符, 如单引号, 逗号等.
代码二则没有, 如果参数是Request.QueryString[ "qz_id "] = "xxx ', 'xxx 'xmmc, "象这样的就会引起执行SQL错误, 第一种就可以正常执行, 你可以试试
[解决办法]
第一种数据类型安全,又防SQL注入
第二种拼接字符串很不可取
[解决办法]
第一种是用的是存储过程,第二种用的是sql语句;
第一种快而且安全