ADO.NET进行参数化时会自动将参数值包含在单引号中,除了特殊需求,最好不要自己手动添加单引号。ADO.NET中识别参数标识是使用符号@,如果在SQL语句中将参数标识放在单引号中,单引号中的参数标识只会被当成字符串!

所以要对LIKE语句进行参数化查询时,就要先对参数值进行格式化,在传参之前就设置好通配符,具体实现代码如下:

string sql = "SELECT * FROM STORE_IN_TYPE  where del_status = 0";SqlParameter[] paras = { };//商品名称if (itype_name != ""){string quanpin = XTools.XHelper.PinYinHelper.GetFull(itype_name).Trim().ToLower();string szm = XTools.XHelper.PinYinHelper.GetFrist(itype_name).Trim().ToLower();sql += $@" and (itype_name like @goods_nameor itype_name_py like @quanpinor itype_name_fpy like @szm)";paras = new SqlParameter[]{XTools.XDB.SQLHelper.GetParameter("@goods_name", "%"+itype_name+"%",SqlDbType.VarChar,64),XTools.XDB.SQLHelper.GetParameter("@quanpin", "%"+quanpin+"%",SqlDbType.VarChar,64),XTools.XDB.SQLHelper.GetParameter("@szm", "%"+szm.Replace(" ", "")+"%",SqlDbType.VarChar,64)};}sql += " and create_time>= '" + dt1.ToString("yyyy-MM-dd HH:mm:ss")+ "' and create_time<= '" + dt2.ToString("yyyy-MM-dd HH:mm:ss") + "' ";SqlDataReader reader =  XTools.XDB.SQLHelper.GetReader(sql,paras);

从上面的代码中我们可以看到具体的变换有两点,第一点是SQL语句中取消了通配符%并且参数标识没有被单引号包含其中,第二点则是通配符直接放到了参数值中,这样ADO.NET在进行参数化后所生成的SQL就完全没问题了,最终也能正确的查询出结果。

转载于:https://www.cnblogs.com/ZaraNet/p/11231480.html

C# ADO.NET中设置Like模糊查询相关推荐

  1. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  2. Springboot项目如何设计接口中敏感字段模糊查询?

    目录 前言 场景分析 实现方案 环境配置 依赖配置 代码实现 总结 前言 在<Springboot项目如何设计接口中敏感字段的加密.解密>和<Springboot项目如何设计接口中敏 ...

  3. MYSQL中LIKE(模糊查询)

    文章目录 0 写在前面 1 代码格式 2 SQL数据准备 3 举例 3.1格式一:`[NOT] where 字段 LIKE '%' `:表示指代任意内容: 3.2 格式四:[NOT] where 字段 ...

  4. jdbc中如何实现模糊查询

    情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决 ...

  5. 对用户信息的模糊查找java_java中对SQL模糊查询通配符%的处理

    在模糊查询的SQL语句中,如果有用户输入查询通配符'%',使用 select * from table where code like '%condition%'的SQL,会查出全部记录,这个如何解决 ...

  6. java中如何做模糊查询_到底Java里的模糊查询语句该怎么写

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在String sql="select * from car where carName like '%'+?+'%'";可以查询出 ...

  7. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

    需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...

  8. 数据库SQL Server中数据的模糊查询

    1.Like 使用Like查询时,字段中的类容并不一定与查询内容完全匹配,只要字段中含有这些内容即可! 代码如下: select StudentName, StudentAdress from Stu ...

  9. 聊一聊数据加密中如何进行模糊查询

    为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码.手机号.电话号码.详细地址.银行卡号.信用卡验证码等信息,这些信息对加解密的要求也不一样,比如说密码我们需要加密存储,一般使 ...

  10. mysql中使用like模糊查询时如何转义%

    我们经常使用like语句配合%%通配符来进行模糊查询,那么如果字段内容本身含有%,而你要查询包含有%的记录怎么办呢怎么办呢.假设字段是title,那么下面的语句可以吗? select * from t ...

最新文章

  1. PHP smarty缓存
  2. 如何让Ubuntu系统支持WebP图片格式
  3. angular 路由页面不刷新
  4. 2.27 18种定位方法总结
  5. 《Linux内核设计与实现》读书笔记(五)- 系统调用
  6. STM32F4设置系统时钟源为内部HSI
  7. java response文件流下载,后缀名称设置
  8. NYOJ -11--奇偶数分离
  9. java中文手册下载,22年最新
  10. java自定义生成js代码_基于JavaScript的代码自动生成工具
  11. 行政区划代码2020(SQL)--(上)
  12. 应聘flash游戏开发面试技巧及建议
  13. 用isPrime函数来判断一个数字是否为素数
  14. 计算机再带word打不开怎么办,word打不开怎么办
  15. 逍遥模拟器安装激活面具magisk教程
  16. 华为大数据客户端安装步骤
  17. PDF转PNG高清不失帧
  18. Frequency Estimation
  19. 用正则表达式提取富文本内容(去除html,p,a等标签)
  20. 绘制花朵Flower

热门文章

  1. 4. 使用Keras-神经网络来进行MNIST手写数字分类
  2. yolo迭代次数_你一定从未看过如此通俗易懂的YOLO系列(从v1到v5)模型解读 (中)
  3. java 新项目计划_项目计划 - KerryJava - 博客园
  4. php如何接受用户邮箱发送信息,怎么将用户购物车的产品发送到邮箱
  5. mysql确定数据表中是否存在某字段_MySQL判断表是否存在某个列
  6. 初识kmp算法(呕心沥血之文----看视频+总结)
  7. linux密钥链接失败的原因,linux中ssh密钥登录失败问题解决办法
  8. android wifi列表轮询,(八十八)Android O WiFi启动流程梳理续——connectToSupplicant
  9. numpy的结构数组和内存布局
  10. 学习的四重境界,给上初中侄女,如何学习,如何定义社会人才