用like语句时的C#格式化函数
2007-05-01 12:20
232 查看
google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google_ad_height = 90;document.write("");***********************************************************************************
* 版权声明
* 此文章为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日
* 此文章源:/article/4782343.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();
}
* 版权声明
* 此文章为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日
* 此文章源:/article/4782343.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#格式化函数
- 用like语句时的C#格式化函数
- 用like语句时的C#格式化函数
- 用like语句时的C#格式化函数
- 用like语句时的C#格式化函数
- 用like语句时的C#格式化函数
- 用like语句时的C#格式化函数
- C#适用于like语句的SQL格式化函数
- 巧用C# Split()函数获取SQL语句中操作字段
- C# 参数化SQL语句中的like和in
- javascript日期格式化函数,跟C#中的使用方法类似
- c#中sql语句中传递Like参数的写法
- C# 参数化SQL语句中的like和in
- C# asp.net中常见的字符串处理函数及数字格式化
- C# asp.net中常见的字符串处理函数及数字格式化
- 巧用C# Split()函数获取SQL语句中操作字段
- C# sql语句拼接时 like情况的防sql注入的用法
- C# 格式化显示金额函数
- [C#]函数 格式化字符串到指定长度
- C#使用带like的sql语句时防sql注入的方法