Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中搜索给出错误的结果_C#_Sql Server_Wildcard - Fatal编程技术网

在C#中搜索给出错误的结果

在C#中搜索给出错误的结果,c#,sql-server,wildcard,C#,Sql Server,Wildcard,我有一个电子邮件文本框,通过它我可以执行搜索。如果我键入a_Scott,结果是以a_Scott开头的电子邮件,但我收到了 a、 斯科特, 艾杰斯科特, 阿尔斯科特。 这是我的密码: if (!string.IsNullOrWhiteSpace(request.EmailAddress)) { var email = request.EmailAddress.IndexOf("*", 0, StringComparison.InvariantCulture) >= 0

我有一个电子邮件文本框,通过它我可以执行搜索。如果我键入a_Scott,结果是以a_Scott开头的电子邮件,但我收到了 a、 斯科特, 艾杰斯科特, 阿尔斯科特。
这是我的密码:

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()));
}

原因是您使用的是类SQL运算符

如果你看一看像,你会发现“u”字符有特殊的含义,需要像使用百分号一样进行转义

_(下划线)-任何单个字符

若要转义
字符,只需使用方括号,如so
[\u]

因此,您的查询如下所示:

SELECT * 
FROM Users
WHERE email LIKE '%a[_]Scott%'

原因是您使用的是类SQL运算符

如果你看一看像,你会发现“u”字符有特殊的含义,需要像使用百分号一样进行转义

_(下划线)-任何单个字符

若要转义
字符,只需使用方括号,如so
[\u]

因此,您的查询如下所示:

SELECT * 
FROM Users
WHERE email LIKE '%a[_]Scott%'

这里有一个sql小提琴来澄清这些理解
这里有一个sql小提琴来澄清这些理解