使用这些方法,我如何检查该条目是否在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 ???
}
}
您不需要SELECT *
只需SELECT
帐户号码列,然后将输入的pin与表中匹配的pin列进行比较。
试试这样写:
通过b
和a
调用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)