.NET中使用SqlParameter实现参数化查询时如何使用Like关键字进行模糊匹配?

在用.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赋值即可正常查询到数据。


  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号