为什么这个C#SQL登录系统不起作用?

时间:2012-07-18 12:06:20

标签: c# sql database

我不确定我在这里做错了什么。

我没有收到实际错误但每次都返回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;

2 个答案:

答案 0 :(得分:7)

认为我看到了问题

if (result.Rows.Count == 0) 

需要

if (result.Rows.Count == 1) 

否则你检查你是否有0行而不是1行,然后你可以检查数据所在的第0行的结果

答案 1 :(得分:1)

在条件下试试这个。

dbPassword.ToLower().trim() == info.password.ToLower().trim()