SQL 服务器查询中的 LIKE 运算符对于匹配自定义模式非常有用。然而,有时需要从模式中转义一些字符或子字符串,例如&符号'%',下划线'_',方括号'['和']'等。
事实上,我正在使用参数化查询,但它不能解决 LIKE 案例,因为例如搜索_
意味着“任何字符”。
在转义此类模式时必须考虑的字符集是什么?是否可以提供 C# 函数来执行安全转义?
SQL 服务器查询中的 LIKE 运算符对于匹配自定义模式非常有用。然而,有时需要从模式中转义一些字符或子字符串,例如&符号'%',下划线'_',方括号'['和']'等。
事实上,我正在使用参数化查询,但它不能解决 LIKE 案例,因为例如搜索_
意味着“任何字符”。
在转义此类模式时必须考虑的字符集是什么?是否可以提供 C# 函数来执行安全转义?
%、_、[、] 和 ^ 需要转义,并且您需要选择一个合适的转义字符,即您没有在 LIKE 模式的其他地方使用的转义字符。
此处的完整描述LIKE (Transact-SQL)
我相信你可以用 C# 编写一个函数来做到这一点。
在此处查看现有的 stackoverflow 答案...
一定要使用 SQLParameter
不要使用 stringbuilder 或将字符串添加在一起
除非您了解 SQL 注入攻击 https://en.wikipedia.org/wiki/SQL_injection