C#OleDb登录验证没有';不起作用
本文关键字:不起作用 登录 验证 C#OleDb | 更新日期: 2023-09-27 18:22:28
所以基本上我是在使用C#.net和MS访问创建一个登录系统。我使用一个类来处理所有连接,但基本上用户名和密码值都会传递给连接类中的方法,我正试图对照数据库检查文本框中的凭据。
问题是,当我使用executeonquery时,它允许输入任何凭据,即使它们不在数据库中。
我当前正在使用ExecuteReader并检查读取器是否返回true。问题是,即使输入的凭据存在于数据库中,它也总是返回false。我不知道出了什么问题。
public static bool adminLoginIn(string user, string password) //method to allow the admin to log in to the admin panel
{
OleDbConnection myConnection = GetConnection(); //calls the connection method which returns database connection string
string myQuery = "SELECT * FROM Staff WHERE Username = '" + user + "' AND Password = '" + password + "'";
OleDbCommand myCommand = new OleDbCommand(myQuery, myConnection);
try
{
myConnection.Open(); //open the database connection
OleDbDataReader dr = myCommand.ExecuteReader();
if (dr.Read())
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
}
finally
{
myConnection.Close(); //close the database connection
}
}
如果总是无论如何都返回false
,那么检查catch
语句是一个主要问题:如果您的代码引发异常,那么您就吞下它并返回false。
删除try/catch并将其替换为using
(并将其应用于其他IDisposable
)。