用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

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

google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google...
  • aspgreener
  • aspgreener
  • 2007年05月01日 12:20
  • 369

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

*********************************************************************************** *               ...
  • 21aspnet
  • 21aspnet
  • 2007年03月20日 00:19
  • 2142

C++ 格式化sql 查询字符串带%的处理

sprintf(sql_target,"select ufrom %s.%s \ where CMD=6 and PROFIT1010500 and \ unix_timestamp(OPEN_T...
  • lizhi200404520
  • lizhi200404520
  • 2014年04月24日 16:20
  • 1334

C#显示SQL语句格式

C#生成SQL语句格式
  • roy_88
  • roy_88
  • 2015年11月08日 15:41
  • 1819

mybatis 的like语句写法

oracle数据库:  Java代码   SELECT   *   FROM   user   WHERE   name like CONCAT('%',#{name...
  • ilovegou
  • ilovegou
  • 2015年03月13日 15:52
  • 1212

access 中sql语句之“like” 语句的注意写法

select * from table1 where name like "zh%"上面一句在access中没有效,需要改成:select * from table1 where name like ...
  • szsbell
  • szsbell
  • 2008年04月08日 00:17
  • 500

JAVA jdbc 用LIKE模糊搜索内容——prepareStatement LIKE语句

JAVA jdbc 用LIKE模糊搜索内容——prepareStatement LIKE语句问题: prepareStatement LIKE在mysql中可以输出结果,但是用java写就查找不到结...
  • Agly_Clarlie
  • Agly_Clarlie
  • 2017年03月04日 17:21
  • 2205

Hibernate HQL like 语句的用法

String str = "中文字符串";String hql = "FROM Table AS t WHERE t.field like '%" + str + "%'";Query query =...
  • forever8tf
  • forever8tf
  • 2011年01月18日 14:25
  • 30567

在php中使用mysql的like语句的注意事项

select * from tb_info where content like '%$content%' 如果$content没有确定的值(如变量名写错或者变量为空值),则该sql语句会匹配c...
  • driver0926
  • driver0926
  • 2012年09月18日 08:00
  • 3811

C# 参数化SQL语句中的like和in

在写项目的时候遇到一个问题,sql 语句进行 like in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like 参数: string strSql = "select * fro...
  • changhong009
  • changhong009
  • 2012年03月26日 18:14
  • 8190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用like语句时的C#格式化函数
举报原因:
原因补充:

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