`
isiqi
  • 浏览: 16118423 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

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

publicstaticstringToLikeSql(stringsqlstr)
{
if(sqlstr==null)return"";
StringBuilderstr
=newStringBuilder(sqlstr);
str.Replace(
"'","''");
str.Replace(
"[","[[]");
str.Replace(
"%","[%]");
str.Replace(
"_","[_]");
returnstr.ToString();
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics