我从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!";
}
答案 0 :(得分:1)
我认为在你的表中,列可能有char类型,它具有固定长度,因此可以附加空格。
答案 1 :(得分:0)
我怀疑您将密码存储为char
而不是varchar
。
但是,将密码存储为纯文本是不好的做法。您应该查看存储密码的哈希值。