我正在尝试通过从数据库中检索用户名和密码来对用户进行身份验证。
在登录功能中,我试图查询与用户名匹配的密码,该用户名作为参数传递给该函数,并在密码与用户密码匹配时对用户进行身份验证。
如果有任何行受到影响,sqlDr.HasRows 返回True。所以如果它是True,我将遍历表中的行。在检查表的“ password_”列时,如果它与用户密码匹配,则必须返回true,但是在这里它仅返回false。
但是,如果密码不匹配,程序将返回false。
public bool login(string username,string password)
{
bool doesExist = false ;
try
{
sqlConnection_ = DBConnection.openConnection();
string query_login = "select password_ from Customer where username_=@username";
SqlCommand sqlCommand = new SqlCommand(query_login, sqlConnection_);
sqlCommand.Parameters.Add("@username", SqlDbType.VarChar,20).Value=username;
//sqlCommand.Parameters["@username"].Value = username;
SqlDataReader sqlDr = sqlCommand.ExecuteReader();
while (sqlDr.Read())
{
if (sqlDr.GetSqlString(0).ToString().Equals(password))
{
doesExist = true;
break;
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return false;
}
//DBConnection.closeConnection(sqlConnection_);
//Console.WriteLine("I am here outside ");
return doesExist;
}
我希望我的函数在密码匹配时返回True;在输入的用户名或密码与数据库中存在的任何记录不匹配时返回false。