我不确定我在这里做错了什么。
我没有收到实际错误但每次都返回false:
string commandString =
"SELECT * FROM UserTable WHERE Username = @UserName";
DataTable result = new DataTable();
using (SqlCommand command = new SqlCommand(commandString, dataConnection))
{
command.Parameters.Add("@UserName", SqlDbType.VarChar).Value = info.username;
using (SqlDataReader dr = command.ExecuteReader())
{
result.Load(dr);
}
}
if (result.Rows.Count > 0)
{
Console.WriteLine((string)result.Rows[0]["Password"]);
Console.WriteLine((string)result.Rows[0]["Username"]);
Console.WriteLine(info.password);
Console.WriteLine(info.username);
string dbPassword = (string)result.Rows[0]["Password"];
if (string.Compare(dbPassword, info.password) == 0)
return true;
else return false;
}
else
return false;
答案 0 :(得分:7)
认为我看到了问题
if (result.Rows.Count == 0)
需要
if (result.Rows.Count == 1)
否则你检查你是否有0行而不是1行,然后你可以检查数据所在的第0行的结果
答案 1 :(得分:1)
在条件下试试这个。
dbPassword.ToLower().trim() == info.password.ToLower().trim()