3 回答
TA贡献1906条经验 获得超3个赞
你这样做是错的。你需要从读者那里阅读。这是你应该做的:
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();
var password = string.Empty;
while(myreader.Read())
{
password = myreader["password"];
}
if (password.Equals(password.Text))
{
frmMain mainF = new frmMain();
mainF.Show();
}
else
{
MessageBox.Show("Username or password is incorrect!");
i++;
}
}
TA贡献1757条经验 获得超8个赞
查看代码,您似乎将文本框作为密码参数传递:
cmd.Parameters.AddWithValue("@pas", password);
然后你做这个检查:
if (rez == password.Text)
这表明这password
是一个文本框。
所以正确的代码应该是:
cmd.Parameters.AddWithValue("@pas", password.Text);
我还将假设这username
是一个文本框,因此当您创建用户名参数时,您应该使用:
cmd.Parameters.AddWithValue("@usr", username.Text);
- 3 回答
- 0 关注
- 169 浏览
添加回答
举报