1

我正在从 SQL Server Management Studio 到 asp.net 4.0 ide 的表中获取所有单元格值。但我不知道为什么,但每个值都会自动附加 3 个空格。而且我也无法修剪这些值。所以我无法将这些值与文本框中的密码值等值进行比较。我正在使用 linq 查询和 linq to sql dbml 文件。谁能告诉我发生了什么事?以及如何解决这个问题?谢谢。

这是代码:

      DataClasses1DataContext dj = new DataClasses1DataContext();
        var pwd = from p in dj.USERs
                  where p.USER_NAME.ToLower().Trim() == _userName.Text.ToString().ToLower().Trim()
                  select new { p.PASSWORD };

        var utype = from u in dj.USERs
                    where u.USER_NAME.ToLower().Trim() == _userName.Text.ToString().ToLower().Trim()
                    select new { u.USER_TYPE };

    if (_password.Text.ToString() == pwd.ToString().Trim())
        //**in above line i m getting pwd.tostring() values to "admin    "
        //_password.text value "admin" .. so it fails to trim and hence compare.**
           {
                if (Session["username"] == null)
                {
                    Session["username"] = _userName.Text.ToString().ToLower();
                }
            }
            else
            {
                _wrongDetails.Text = "Wrong UserName or Password Entered!";
            }
4

2 回答 2

1

我认为在您的表格中,列可能具有 char 类型,它的长度是固定的,因此可以附加空格。

于 2012-10-01T12:04:33.587 回答
0

我怀疑您将密码存储为 achar而不是varchar.

但是,将密码存储为纯文本是不好的做法。您应该对存储的密码进行哈希处理。

于 2012-10-01T11:16:15.923 回答