Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 检查用户名是否存在,区分大小写 public bool CheckUsername(字符串用户名) { bool exists=false; 变量查询= 从t到db.coach 其中String.Equals(t.user\u名称、用户名) 选择t; List coach=query.ToList(); 如果(coach.Count!=0) { 存在=真; } 其他的 { 存在=假; } 回报存在; }_C#_String_Entity Framework_Equals - Fatal编程技术网

C# 检查用户名是否存在,区分大小写 public bool CheckUsername(字符串用户名) { bool exists=false; 变量查询= 从t到db.coach 其中String.Equals(t.user\u名称、用户名) 选择t; List coach=query.ToList(); 如果(coach.Count!=0) { 存在=真; } 其他的 { 存在=假; } 回报存在; }

C# 检查用户名是否存在,区分大小写 public bool CheckUsername(字符串用户名) { bool exists=false; 变量查询= 从t到db.coach 其中String.Equals(t.user\u名称、用户名) 选择t; List coach=query.ToList(); 如果(coach.Count!=0) { 存在=真; } 其他的 { 存在=假; } 回报存在; },c#,string,entity-framework,equals,C#,String,Entity Framework,Equals,这是我的职责。例如,如果用户名james存在,我希望用户仍然能够使用用户名james,james。。。就我所知,String.equals()区分大小写,但我的函数不起作用。你知道为什么这样不行吗?我尝试使用compare,但它不起作用,因为它返回一个int。我的猜测是,虽然String.Equals通常区分大小写,但db在其查询中设置为不区分大小写。您可能需要修改数据库以将字段设置为区分大小写。我的猜测是,虽然String.Equals通常区分大小写,但db在其查询中设置为不区分大小写。您可能

这是我的职责。例如,如果用户名
james
存在,我希望用户仍然能够使用用户名
james
james
。。。就我所知,
String.equals()
区分大小写,但我的函数不起作用。你知道为什么这样不行吗?我尝试使用compare,但它不起作用,因为它返回一个int。

我的猜测是,虽然String.Equals通常区分大小写,但db在其查询中设置为不区分大小写。您可能需要修改数据库以将字段设置为区分大小写。

我的猜测是,虽然String.Equals通常区分大小写,但db在其查询中设置为不区分大小写。您可能需要修改数据库以将字段设置为区分大小写。

您有拼写问题。更改以下内容:

public bool CheckUsername(string username)
{
    bool exists=false;

    var query =
        from t in db.Coaches
        where String.Equals(t.user_name,username)
        select t;


    List<Coach> coaches = query.ToList();
    if (coaches.Count!=0)
    {
        exists = true;
    }
    else
    {
        exists = false;
    }
    return exists;
}


你有拼写问题。更改以下内容:

public bool CheckUsername(string username)
{
    bool exists=false;

    var query =
        from t in db.Coaches
        where String.Equals(t.user_name,username)
        select t;


    List<Coach> coaches = query.ToList();
    if (coaches.Count!=0)
    {
        exists = true;
    }
    else
    {
        exists = false;
    }
    return exists;
}

String.equals()
区分大小写,但EF会将其转换为SQL,SQL可能不区分大小写,具体取决于该列的排序规则(如果该列没有指定排序规则,则数据库也可能不区分大小写)

通过将该列的排序规则设置为区分大小写,可以在服务器端解决此问题

exists = true;
或者在客户端,通过回调与不区分大小写的搜索匹配的所有记录,然后在Linq中过滤到对象:

ALTER TABLE Coaches
ALTER COLUMN user_name VARCHAR(20)  // or whatever the size of your username column is
COLLATE Latin1_General_CS_AS
只要您没有成千上万的用户在不同的大小写中使用相同的用户名,那么在linq to对象中进行过滤不会产生太大的影响

请注意,更改列的排序规则将影响对
username
进行筛选或排序的任何查询,因此在进行更改之前,请在单独的环境中进行大量测试。

String.equals()
区分大小写,但EF会将其转换为SQL,这可能不区分大小写,具体取决于该列的排序规则(如果该列没有指定排序规则,则取决于您的数据库)

通过将该列的排序规则设置为区分大小写,可以在服务器端解决此问题

exists = true;
或者在客户端,通过回调与不区分大小写的搜索匹配的所有记录,然后在Linq中过滤到对象:

ALTER TABLE Coaches
ALTER COLUMN user_name VARCHAR(20)  // or whatever the size of your username column is
COLLATE Latin1_General_CS_AS
只要您没有成千上万的用户在不同的大小写中使用相同的用户名,那么在linq to对象中进行过滤不会产生太大的影响


请注意,更改列的排序规则将影响对
用户名进行筛选或排序的任何查询,因此在进行更改之前,请在单独的环境中进行大量测试。

“我的函数不起作用”不会告诉我们任何信息。另外,代码的后半部分相当于
returnquery.Any()。实际上,您的整个方法可以转换为
returndb.coach.Any(t=>t.user\u name==username)我正在使用实体框架。db是我的上下文。@JonSkeet实际上它是有效的,但它不会返回我想要的东西。比较无效。我要那个“詹姆斯”“James”如果它不做你想要的,那么它就不工作了-但是你没有清楚地描述发生了什么。假设“db”是EF,下面的解释是如何做的:“我的函数不工作”没有告诉我们任何事情。另外,代码的后半部分相当于
returnquery.Any()。实际上,您的整个方法可以转换为
returndb.coach.Any(t=>t.user\u name==username)我正在使用实体框架。db是我的上下文。@JonSkeet实际上它是有效的,但它不会返回我想要的东西。比较无效。我要那个“詹姆斯”“James”如果它不能满足您的要求,那么它就不起作用-但您还没有清楚地描述会发生什么。假设“db”是EF,下面是如何实现的说明:不幸的是,我的真实代码中没有出现这个错误,感谢您澄清这一点。我想知道intellisense为什么没有为您选择它。:)不幸的是,这个错误并没有出现在我的真实代码中,感谢您澄清了这一点。我想知道为什么intellisense没有为您收集这些信息。:)