我有一个数据库,其中有一个名为 person
的表,其中有两行分别名为 personID
和 firstName
现在,我有一个包含 2 个文本框的表单,要求输入 ID 和名字。
问题是,如果 ID 和 firstName 来自同一条记录,我不知道如何检查数据库,如果记录匹配,我不知道如何将你带到另一个名为 admin
的表单不要只是给出错误标签。
我希望得到任何帮助,谢谢。
编辑:这是目前的代码,connection already open, connection must be open
错误
private void btnLoginScreen_Click(object sender, EventArgs e)
{
{
switch (dbAuth(txtAdminLogID.Text, txtAdminLogName.Text))
{
case true:
//Open Admin form
break;
case false:
//Show Errorlabel here
break;
case null:
//An error occured while fetching data
break;
default:
break;
}
}
}
public bool? dbAuth(string personID, string firstName)
{
try
{
MySqlCommand command = new MySqlCommand();
command.CommandText = "SELECT * FROM person";
MySqlDataReader Reader;
conn.Open();
Reader = command.ExecuteReader();
while (Reader.Read())
{
if (Reader[0].ToString() == personID) //first check if the ID is equal
{
if (Reader[1].ToString() == firstName) //if ID is equal, check if firstName is equal
{
conn.Close();
return true;
}
}
}
conn.Close();
return false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}
编辑:这是我的连接字符串:
string connstring = "server=localhost;user Id=root;database=collegesystem;Convert Zero Datetime=True ";
MySqlConnection conn;
最佳答案
这就是我的做法(使用 MySQL-Connector):
public bool? Authenticate(string personID, string firstName)
{
try
{
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM yourTable";
MySqlDataReader Reader;
connection.Open();
Reader = command.ExecuteReader();
while (Reader.Read())
{
if (Reader[0].ToString() == personID) //first check if the ID is equal
{
if (Reader[1].ToString() == firstName) //if ID is equal, check if firstName is equal
{
connection.Close();
return true;
}
}
}
connection.Close();
return false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}
在您的表单中,登录按钮所在的位置使用以下代码:
private void MySQL_Auth_button_Click(object sender, EventArgs e)
{
switch (dbAuth.AuthenticatePlain(personID_textBox.Text, firstName_textBox.Text))
{
case true:
//Open Admin form
break;
case false:
//Show Errorlabel here
break;
case null:
//An error occured while fetching data
break;
default:
break;
}
}
关于c# - 我将如何使用数据库创建登录表单以进行检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18802878/