Jun*_*Dev 0 c# sql-server wildcard
我有一个电子邮件文本框,通过它我可以执行搜索.如果我键入a_Scott结果是开始的电子邮件:a_Scott但我得到a.scott,ajscott,arscott.
这是我的代码:
if (!string.IsNullOrWhiteSpace(request.EmailAddress))
{
var email = request.EmailAddress.IndexOf("*", 0, StringComparison.InvariantCulture) >= 0
? request.EmailAddress.RemovePercentsign().ReplaceAsterikWithPercentSign()
: request.EmailAddress + "%";
command.Parameters.Add(new SqlParameter("@Email", email.Trim()));
}
Run Code Online (Sandbox Code Playgroud)
原因是您正在使用SQL LIKE运算符.
如果您查看LIKE 文档,您可以看到'_'字符具有特殊含义,需要像使用百分号一样进行转义.
_(下划线) - 任何单个字符.
要逃避_角色,只需使用方括号[_].
所以你的查询变成这样:
SELECT *
FROM Users
WHERE email LIKE '%a[_]Scott%'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |