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
        }
    }

C#OleDb登录验证没有';不起作用

如果总是无论如何都返回false,那么检查catch语句是一个主要问题:如果您的代码引发异常,那么您就吞下它并返回false。

删除try/catch并将其替换为using(并将其应用于其他IDisposable)。