我想问,如果我有两个字段username和password,如何在windows窗体中实现登录功能。在数据库中,我有一个名为 users
在它的2个字段-用户名和密码。我想从数据库中获取密码,然后将其与文本框字段中输入的密码进行比较,如果密码相同,我想打开/显示/一个新表单。然而,我总是在 catch
代码块。我想问为什么会这样?
try
{
if (i == 2)
{
Application.Exit();
}
conn.Open();
string query = "select password from users where username = @usr and password = @pas";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.AddWithValue("@usr", username);
cmd.Parameters.AddWithValue("@pas", password);
MySqlDataReader myreader = cmd.ExecuteReader();
string rez = (string)myreader.ToString();
if (rez == password.Text)
{
frmMain mainF = new frmMain();
mainF.Show();
}
}
catch (Exception ex)
{
MessageBox.Show("Username or password is incorrect!");
i++;
}
3条答案
按热度按时间0mkxixxg1#
你做错了。你需要从读者那里阅读。以下是您应该做的:
yk9xbfzb2#
查看代码,您似乎正在传递一个文本框作为密码参数:
然后再检查:
这表明
password
是一个文本框。所以正确的代码应该是:
我还要假设
username
是文本框,因此在创建用户名参数时应使用:ijnw1ujt3#
如果textbox id为“username”和“password”,则需要传递该textbox的值,如下所示:
“用户名.text”和“密码.text”
然后你就可以登录了。