在用.NET做项目的时候,我们经常会遇到模糊查询的需求,正常的数据库语法是like %'张'%这样写的,但是为了防止SQL注入,我们使用了SqlParameter对象,使用这个对象后并不能这样写了。
例如,平时我们写的是:string sql = "select * from table where name like %'张'%"
然后换成了参数化的写法是:string sql = "select * from table where name like %'@name'%",然后通过SqlParameter给@name赋值。但是这样的写法是错误的,是查不到数据了
那么正确的写法是什么样的呢?正确的写法应该是这样:string sql = "select * from table where name like '%' + @name +'%'"
区别就在于,正确的写法是把前后的百分号%用单引号包了起来,然后再用加号+连接参数@name,最后再通过SqlParameter给@name赋值即可正常查询到数据。
ok
mjj通道