我正在尝试使用sql server在C#中使用linq匹配用户名和密码
//verify the user.
var UserDetails =
(from user in con.ios_Users
where (user.LOGIN == LogReq.userName && user.PASSWORD == LogReq.password && user.ACTIVE != 0)
select new
{
user.ID,
user.TYPEDESCR,
user.USERNAME
}).ToList();
在上面的代码中,如果我传递用户名-演示和密码-demo123,但它返回数据用户数据,但在数据库中,用户名是-DeMo,密码是DeMo123
如何使此linq查询区分大小写:(
提前致谢 :)
最佳答案
似乎是数据库排序规则问题:https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15
SQL Server中的归类为数据提供排序规则,大小写和重音敏感性属性。与字符数据类型(例如char和varchar)一起使用的排序规则规定了代码页以及可以为该数据类型表示的相应字符。
以上是针对MsSql的,但它适用于大多数主流数据库。
如果使用的是linqToSql,则将linq转到查询并在数据库中执行,因此实际比较发生在SQL端。
因此,您需要在表上修复排序规则。
关于c# - 如何匹配区分大小写的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59746056/