用like语句时的C#格式化函数

转载 2006年06月22日 12:40:00
***********************************************************************************
*                  版权声明                        
*         此文章为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通常就是因为经验不足而导致的,并非你要注意避免就一定能避免的了。而测试人员如何不了解的话,也很难测试出来。因为毕竟不可能测试无穷多个字符串。
     欢迎大家访问海洋工作室(http://sps.oceanstudio.net )
/// <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();
        }

posted on 2005-02-22 08

有些access语句在数据库中可以执行,但是在C#上又不能执行,比如模糊查询-like

access上运行的语句 select  *  From   a   where  aa  like  '1*';  //模糊查询1为开头的数据 C# 上运行的语句   就是把上面的*改成% s...

巧用C# Split()函数获取SQL语句中操作字段

这是前天工作时要求的,将SQL语句的操作字段获取出来挂在树节点上,感觉这个函数以后还有可能会用到,特此总结一下,函数中没有实现Select *的操作,只要添加判断条件即可。 工具函数:Split()...

C#箴言:使用构造函数初始化语句

在写程序的时候,往往会出现为一个类型提供不同场景的构造函数,可能大多构造函数比较相似,而C#中又不允许缺省参数,因此构造函数的编写无疑是一个重复工作。但是使用Copy和Paste来完成构造函数的编写,...

sql语句中条件查询like的效率,及使用规范.

引用“ 我在做数据库查询的时候,发现了一个奇怪的问题,在使用like关键字的时候,速度其慢,效率极低。不明白是什么原因,请大家讲解一下,为什么like慢,而其他的两个快。3个查询不同的地方用红色...

mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等

mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等

mysql like查询字符串示例语句

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式一、SQL模式SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意...

Hql语句模糊查询‘like’与中文问题

在做搜索日志的关键字中遇到的问题,特此记录下来: 首先遇到的问题是模糊查询时HQL拼写错误; 接下来遇到的问题是request取得的值含有中文的话产生乱码; 最后遇到的问题是模糊查询中中文与数据库时间...

mongodb 中的模糊查询----(like 查询语句) 在mongo VUE里面怎么写查询

模糊查询:就是sql的select * from table where xx like yy的样式的sql语句。 db.user.find({"name":/ab/}) 这样,可以查出所有包含有...

SQL注入专题--整理帖 && like 语句拼sql 如何防止注入攻击。

http://bbs.csdn.net/topics/290032853 dfd
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用like语句时的C#格式化函数
举报原因:
原因补充:

(最多只允许输入30个字)