try
{
string log = "SELECT * from rfidprototype.account where username ='" + USERNAME + "' and password = '" + PASS + "';";
MySqlCommand cmd = new MySqlCommand(log, SQLconn);
MySqlDataReader dRead;
dRead = cmd.ExecuteReader();
if (DRead.Read())
{
MenuHere form = new MenuHere();
form.Show();
form.ManageTile.Enabled = false;
SQLconn.Close();
DRead.Close();
}
else
{
MessageBox.Show("Incorrect Username or Password!");
DiriLogin form = new DiriLogin();
form.ShowDialog();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:0)
在您的情况下,您尝试在阅读阅读器时关闭连接。
不要手动使用Close
或Dispose
方法,而是使用using
statement自动处理您的连接,命令和阅读器。
但更重要的是,您应该始终使用parameterized queries。这种字符串连接对SQL Injection攻击开放。
并且不将您的密码存储为纯文本。阅读:Best way to store password in database
using(var SQLconn = new MySqlConnection(conString))
using(var cmd = SQLconn.CreateCommand())
{
// Set your CommandText property.
using(var dRead = cmd.ExecuteReader())
{
// Do your stuff
}
}
最后,PASSWORD
在MySQL中是reserved keyword。 可能需要在`字符之间使用它,具体取决于您的数据库管理器是否区分大小写。