我遇到了问题。我创建了一个登录表单,然后在我的应用程序中使用角色登录。操作员登录成功。但是,管理员登录失败了,请帮助我。
有我的代码:
MySqlConnection conn = new MySqlConnection("server=localhost;database=buku;uid=********;pwd=********");
public MySqlCommand cmd;
public loginForm() {
InitializeComponent();
}
public void login() {
try {
conn.Open();
cmd = conn.CreateCommand();
cmd.CommandText = "select username, password, akses from kasir";
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
string role = reader["akses"].ToString();
roleLogin.Text = role.ToString();
if (usernameLogin.Text == reader["username"].ToString() && passwordLogin.Text == reader["password"].ToString()) {
this.Hide();
if (role.ToString() == "Operator") {
operatorForm op = new operatorForm();
op.Show();
} if (role.ToString() == "Admin") {
adminForm admin = new adminForm();
admin.Show();
}
} else {
MessageBox.Show("Username or Password Was Wrong!");
}
conn.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
private void btnLogin_Click(object sender, EventArgs e) {
login();
}
}
这是我记录中的数据
答案 0 :(得分:1)
试试这个解决方案:
cmd.CommandText = "select username, password, akses from kasir where username =" + usernameLogin.Text;
我认为这样做你只需要把条件
答案 1 :(得分:0)
您需要在查询中添加where语句
cmd.CommandText = "select username, password, akses from kasir";
此外,检查数据库中的管理员角色是大写还是小写以避免任何与区分大小写有关的问题更改此信息:
if (role.ToString() == "Admin")
要:
if(role.ToString().Equals("Admin",StringComparison.CurrentCultureIgnoreCase))