首页 > 解决方案 > 使用 Linq to sql 执行区分大小写的查询?

问题描述

如何强制 LINQ to SQL 在数据库端进行区分大小写的比较?身份验证时,我需要密码身份验证区分大小写,而用户名不区分大小写。生成的查询不区分 SQL 服务器比较不区分大小写。

public Boolean checkLogin(string uname, string pwd)
        {
            DataClassesDataContext dc = new DataClassesDataContext(RetrieveConnection());

            int count=(from c  in dc.Logins
                      where c.UserName == uname && c.Password == pwd
                      select c).Count();
            if(count>0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

标签: linq

解决方案


您在这方面的方法不是很好。最好的方法是使用方法将所有用户名以小写字母保存在数据库中string.ToLower()。关于密码,也许您应该尝试一些加密方法,而不是将字符串作为密码存储在数据库中。有很多简单的加密方法,所以并不太复杂(见System.Crypthography


推荐阅读