***********************************************************************************
*                  版权声明                        
*         此文章为ocean所有,版权归ocean所有,任何网站
*和 媒体转载必须包含此段声明,否则将视为侵权,作者将 
* 保留一切权力。此声明为此文章中不可或缺的一部分。 
* 作者网名:ocean                                  
* 作者email:ocean@forever.net.cn                  
* 作者网站:http://www.oceanstudio.net             
*                     http://sps.oceanstudio.net             
* 作者blog:博客园,http://www.cnblogs.com/ocean  
*                 ocean's blog,http://www.oceanstudio.net/sps/blog 
* 此文章发表时间:2005年2月22日                     
* 此文章源:http://www.cnblogs.com/ocean/archive/2005/02/22/107250.html                                      
************************************************************************************

昨天同事测试到一个bug,发现模糊查询中有中括号的时候查询不出来。模糊查询一般都是采用like '%xxx%'的方式,第一反应是[是特殊字符,需要转义。查了查帮助果然如此。并且转义还比较特别,使用中括号括起来,也即[[],并且除了这个符号之外,还有其它的几个符号。想想以前做的程序,都没有转义过,只是将里面的单引号替换成两个单引号而已。而且这些特殊字符在查询中确实比较难碰到。看来以前写的n多程序就bug多多了。因为我从来就没有转义过。从现在要改正了。写了一个C#的函数,不过还没有测试,贴出来先。想想有些bug通常就是因为经验不足而导致的,并非你要注意避免就一定能避免的了。而测试人员如何不了解的话,也很难测试出来。因为毕竟不可能测试无穷多个字符串。

/**//// <summary>
        /// 对字符串进行sql格式化,并且符合like查询的格式。
        /// </summary>
        /// <param name="str">要转换的字符串</param>
        /// <returns>格式化后的字符串</returns>
        public static string ToLikeSql(string sqlstr) 
        {
            if (sqlstr == null)  return "";
            StringBuilder str = new StringBuilder(sqlstr);
            str.Replace("'","''");
            str.Replace("[","[[]");
            str.Replace("%","[%]");
            str.Replace("_","[_]");
            return str.ToString();
        }

用like语句时的C#格式化函数相关推荐

  1. VB中的format格式化函数

    VB Format函数 Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 - - - - - - - - - - - - - - - ...

  2. 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法

    01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍  Java概述.helloworld案例  工 ...

  3. Python 循环语句和字符串内置函数

    系列文章目录 第五章 Python 机器学习入门之循环语句与字符串内置函数 Python 机器学习入门之循环语句 系列文章目录 前言 一.while 二.while嵌套循环 三.掷骰子 四.break ...

  4. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...

  5. 当我们输入一条SQL查询语句时,发生了什么?

    我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题.同样,对于 MySQL 的学习也是这样.平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单 ...

  6. 【初阶】unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流...

    [初阶]unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流 一.关于 显示分数时,如何让函数之间相互交流 这是一个非常好的逻辑问题 1 思路:主 ...

  7. 【转】MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 1 2 SELECT DAYOFWEEK('201 ...

  8. MySQL实战 | 01 当执行一条 select 语句时,MySQL 到底做了啥?

    原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...

  9. 格式化字符串漏洞利用 二、格式化函数

    二.格式化函数 原文:Exploiting Format String Vulnerabilities 作者:scut@team-teso.net 译者:飞龙 日期:2001.9.1 版本:v1.2 ...

最新文章

  1. Python开发【第十二篇】:DOM
  2. 文件的文本打开方式和二进制打开方式的区别
  3. Web页面减肥,慎用VS的自动格式化功能!
  4. 什么是互联网大厂_2020阿里、腾讯、字节跳动等14家互联网大厂薪资水平大汇总...
  5. NHibernate3.0剖析:Query篇之NHibernate.Linq标准查询
  6. bootstrap图片怎么横向布局_AMOS画图小技巧1:页面布局由竖向调整为横向A4尺寸...
  7. SSH启动失败解决方法
  8. 成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy)
  9. [NOIp2015]推销员
  10. Android5更新包,Android 5.x OTA Update官方文档(四、OTA更新包解读)
  11. SAP 有关BOM有效期以及ECM
  12. 蓝牙耳机哪个品牌经济实惠?价格便宜音质好的蓝牙耳机推荐
  13. 联想开机启动项按哪个_联想笔记本按哪个按键进入U盘启动|详解联想进入U盘启动的教程...
  14. android自动登录简书,android 手机号实现登录功能
  15. Java实现 蓝桥杯VIP 算法训练 方格取数
  16. 计算机叫醒服务英语,关于酒店叫醒服务的英文口语
  17. 如何在项目中使用pdf.js查看PDF文件
  18. 高端电子芯片助力传统油液颗粒监测升级
  19. 关于 此证书的签发者无效 解决办法 (整理自 网络)
  20. 计算机等级考试c语言试题,计算机等级考试C语言试题精选(带答案).doc

热门文章

  1. 自定义类型数组的初始化
  2. BorderDet(论文解读)
  3. 【机器学习入门】(2) 朴素贝叶斯算法:原理、实例应用(文档分类预测)附python完整代码及数据集
  4. 计算机视觉:Bag of words算法实现图像识别与搜索
  5. LeetCode刷题记录5——441. Arranging Coins(easy)
  6. 动机模型_一个模型教你如何激发学习动机
  7. 金士顿u盘量产工具_与时俱进,金士顿双接口优盘支持Type C接口
  8. vue下轻松解决模拟微信视频缩略图拖拽→吸附窗口边界的功能
  9. 复制已有的Tomcat作为新的Tomcat,只需修改三个配置文件,五步操作,保证能正常运行!
  10. 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)