1

SQL Server Management Studio から asp.net 4.0 ide へのテーブルからすべてのセル値を取得しています。しかし、理由はわかりませんが、すべての値に自動的に 3 つのスペースが追加されます。また、それらの値をトリミングすることもできません。したがって、これらの値をテキストボックスのパスワード値などの値と比較することはできません。そして、私は linq クエリと linq を 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

charパスワードをではなくとして保存していると思われますvarchar

ただし、パスワードをプレーン テキストとして保存することはお勧めできません。保存したパスワードをハッシュ化する必要があります。

于 2012-10-01T11:16:15.923 に答える