`
isiqi
  • 浏览: 16486349 次
  • 性别: 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();
}
分享到:
评论

相关推荐

    C#适用于like语句的SQL格式化函数

    本文将详细介绍一个C#中的SQL格式化函数,该函数专门针对`LIKE`语句,可以将字符串转换为安全的、符合`LIKE`查询格式的SQL语句。 首先,让我们深入理解`LIKE`语句的基本用法。在SQL中,`LIKE`关键字后面通常跟一个...

    精通sql结构化查询语句

    简单的SELECT语句查询 6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表中指定的字段 6.2.2 查询所有的字段 6.2.3 使用DISTINCT...

    C#开发和使用中的23个技巧

    在 SQL 查询中,可以使用 `to_date` 函数(在 Oracle 中)来格式化日期。 **示例 SQL:** ```sql SELECT to_date(column, 'yyyy-mm-dd') FROM table; ``` ### 12. 动态填充 DataSet 在 C# 中,可以通过定义新的 `...

    c# 实现记事本功能,附加数据库

    5. **查询功能**:实现文本查询功能,可以使用SQL的LIKE或CONTAINS语句,根据用户的输入搜索关键字。在C#中,可以使用SqlCommand的ExecuteScalar或ExecuteReader方法来执行查询,并将结果返回给用户。 6. **异常...

    sql语句练习 及 答案

    **解析:** 这个查询利用了`TO_CHAR()`函数来格式化日期,并按月份进行分组计数。 ### 7. 统计各科目的平均成绩、总成绩、及格率 **题目:** 使用`SUM()`、`COUNT()`和`CASE`语句来计算科目级别的统计数据。 **SQL...

    sql+语句练习与答案+.txt

    这部分SQL语句首先查询学生编号,并对其进行格式化处理。然后通过更新语句修改学生表和成绩表中的学生编号格式。注意这里`LPAD()`函数用于左填充数字以达到指定长度。 以上是对给定的SQL练习题目的解析和解答。这些...

    c#的一些技巧详解.

    数字格式化 在显示数字时,可以使用 `ToString` 方法指定格式,确保数值按照预期的方式显示。 ```csharp string formattedNumber = "0212".ToString(); ``` 这些技巧涵盖了 C# 编程中常见的数据绑定、数据库交互、...

    仿GoogleC#导出Excel,不用ms excel组件

    总的来说,实现"仿GoogleC#导出Excel,不用ms excel组件"的核心在于选择合适的库(如EPPlus、NPOI或ClosedXML),利用其API创建、格式化和保存Excel文件,从而在不依赖Microsoft Excel组件的情况下,提供与原生Excel...

    如何在水晶报表中搜索指定文本源程序实例,C#.net源代码编写,VisualStudio.net

    水晶报表通过连接到数据源(如数据库、XML文件或任何其他数据提供者),获取数据并将其组织成可视化的报表格式。在这个过程中,你可以定义计算字段、过滤条件、分组和排序规则,以及复杂的报表布局。 要在水晶报表...

    实验四 数据查询1

    同时,`IS NULL`用于检查字段是否为空,`TO_CHAR()`函数用于格式化日期。 6. **时间范围查询**:查询特定时间范围内的记录,例如`WHERE TO_CHAR(LENDDATE,'YYYY')='2012'`用于找到所有2012年内的借阅记录。 7. **...

    SQLite3的视图和通配符.doc

    - `strftime()`:用于格式化日期时间。 例如,使用`strftime()`函数获取当前日期: ```sql SELECT strftime('%Y-%m-%d', 'now'); ``` 以上内容涵盖了SQLite3中的视图、通配符及日期时间函数的主要知识点,帮助用户...

    2024春季校招计算机面试题

    - **if语句格式**:C#中的`if`语句的基本语法为`if (条件)`,其中条件通常为布尔表达式。 #### 6. 方法返回值 **知识点:** - **return语句**:`return`语句用于从方法中返回一个值。如果方法没有返回值,则可以...

    SQL日自学通

    - **字符函数**:如CHR、CONCAT、INITCAP、LOWER/UPPER、LPAD/RPAD、LTRIM/RTRIM、REPLACE、SUBSTR、TRANSLATE、INSTR、LENGTH等,用于字符串的拼接、截取、替换、格式化等操作。 - **转换函数**:如TO_CHAR、TO_...

    sql自学PDF

    - **一般语法:** SELECT语句的基本格式为`SELECT column_name(s) FROM table_name WHERE condition;`。 - **第一个查询示例:** 如查询所有员工的名字,可以使用`SELECT name FROM employees;`。 - **WHERE子句:**...

Global site tag (gtag.js) - Google Analytics