使用这些方法,我如何检查该条目是否在SQL数据库中

本文关键字:是否 数据库 SQL 检查 方法 何检查 | 更新日期: 2023-09-27 17:54:02

我创建了一台自动取款机,它有一个登录屏幕。

您需要能够使用我输入数据库的账号"1111222233334444"和PIN"7777"登录。我需要它,所以当提交是点击它会检查我的数据库和表的这些条目,如果他们在他们的将继续到下一个表单。SQL方法去哪里,以便我可以检查输入的帐户和密码是否在数据库中?这是我的开放连接代码。

 private bool OpenConnection()
    {
        try
        {
            connection.Open();
            return true;
        }
        catch (MySqlException ex)
        {
            switch (ex.Number)
            {
                case 0:
                    MessageBox.Show("Cannot connect to the server. ");
                    break;
                case 1045:
                    MessageBox.Show("Invalid username/password, please try again");
                    break;
            }
            return false;
        }
    }

我的CheckCredentials代码是这样的:

    public List<string>[] CheckCredentials()
    {
        string query = "SELECT * FROM atmmachine";
        List<string>[] list = new List<string>[3];
        list[0] = new List<string>();
        list[1] = new List<string>();
        list[2] = new List<string>();
        if (this.OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                list[0].Add(dataReader["AccountNumber"] + "");
                list[1].Add(dataReader["PIN"] + "");
            }
            dataReader.Close();
            this.CloseConnection();
            return list;
        }
        else
        {
            return list;
        }
    }

那么我的按钮点击代码如下,这大部分只是验证,需要明显改变。

private void btn_Confirm_Click(object sender, EventArgs e)
    {
        String a;
        String b;
        a = txt_PIN.Text;
        b = txt_Account.Text;
        if (a.Length < 5 && a.Length > 3 && b.Length < 17 && b.Length > 15)

        {
            Login f1 = new Login();
            this.Hide();
            Navigation f2 = new Navigation();
            f2.Show();
        }
        else
        {
            MessageBox.Show("Invalid PIN or Account Number");
        }
    }
nath

public bool CheckCredentials()
    {
        string query = "SELECT 'PIN' FROM atm WHERE AccountNumber = enteredAcctnum";
        string PIN;
        string AccountNumber;

        if (this.OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string pin = reader.GetString(0);
            }
            reader.Close();
            this.CloseConnection();
            return ???
        }
        else
        {
            return ???
        }
    }

使用这些方法,我如何检查该条目是否在SQL数据库中

您不需要SELECT *只需SELECT帐户号码列,然后将输入的pin与表中匹配的pin列进行比较。

试试这样写:

通过ba调用CheckCredentials方法。在您的登录表单中:

CheckCredentials(b, a)
现在,在CheckCredentials:
SELECT pin FROM your_table WHERE accountnumber = b

然后使用reader:

while (reader.Read())
{
   string pin = reader.GetString(0);
}

然后你可以比较:

if (pin == a)
return true;
else return false;

注意:在您的CheckCredentials(string b, string a)

中添加两个字符串参数