执行sql语句时参数化,有啥好处

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行sql语句时参数化,有啥好处相关的知识,希望对你有一定的参考价值。

比如:
string sql = "insert into infill(levels,times,point) values(@levels,@times,@point)";
SqlParameter[] par = new SqlParameter[]

new SqlParameter("@levels",levels),
new SqlParameter("@times",times),
new SqlParameter("@point",point)
;
DbHelperSQL.ExecuteNonQuery(sql,par);
不用参数就可以
string sql = "insert into infill(levels,times,point) values("+levels+","+times+","+point+")";
DbHelperSQL.ExecuteNonQuery(sql,par);
最后一句写错了,是DbHelperSQL.ExecuteNonQuery(sql);

参考技术A 好处是可以和程序或网站的使用者进行交互对话,根据使用者提供的信息搜索出不同的答案。 参考技术B 防注入。
比如你登录的语句写成:
string sql="select uid from login where uid='"+uid+"' and pwd='"+pwd+"'";
那只需要把密码写成'or'0'='0就可以登录了
参考技术C 防止sql注入本回答被提问者采纳

以上是关于执行sql语句时参数化,有啥好处的主要内容,如果未能解决你的问题,请参考以下文章

参数化sql查询语句

执行计划--参数化设置

PatePoco中对sql参数化时Top参数化的问题

SqlServer参数化脚本与自动参数化(简单参数化)

OLEDB 参数化查询

防御sql注入