首页  ·  知识 ·  编程语言
用like语句时的C#格式化函数
佚名  http://www.chenjiliang.com/  .NET  编辑:dezai  图片来源:网络
模糊查询一般都是采用like'%xxx%'的方式,第一反应是[是特殊字符,需要转义。查了查帮助果然如此。并且转义还比较特别,使用中括号括起来,也即[[],

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

///  
/// 对字符串进行sql格式化,并且符合like查询的格式。 
///  
/// 要转换的字符串 
/// 格式化后的字符串 
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();
}
本文作者:佚名 来源:http://www.chenjiliang.com/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读