JOptionPane.showMessageDialog 不会 运行 下一行也不会 运行ning
JOptionPane.showMessageDialog won't run and the next line is also not running
在我更新代码和更新数据库之前的第一次尝试所有系统 运行 正确。问题是当用户名和密码更正时,消息框也不会出现在下一个表单中。当用户名和密码错误时,才会出现按摩框。数据库已经连接,程序读取它。
这是我的代码:
private void LoginButtonActionPerformed(java.awt.event.ActionEvent evt) {
try
{
pr = con.prepareStatement("SELECT * FROM Employee WHERE username = ? and pass = ?");
String Us = Username.getText();
String PW = Password.getText();
if(Username.equals("") || Password.equals(""))
{
JOptionPane.showMessageDialog(null, "You Need To Fill Username and Password");
}
else
{
pr.setString(1, Us);
pr.setString(2, PW);
rs = pr.executeQuery();
rs.next();
String EmployeeName = rs.getString("nama");
String Position = rs.getString("posisi");
String EmpID = rs.getString("id");
EmpLem = EmpID;
if (Username.equals(rs.getString("username"))&& Password.equals(rs.getString("pass")))
{
if (Position.equals("Service"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
EmployeeMenu serviced = new EmployeeMenu();
serviced.show();
this.hide();
}
else if (Position.equals("superadmin"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
SuperMenu sm = new SuperMenu();
sm.show();
this.hide();
}
else if (Position.equals("Warehouse"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
WareHouseMan sm = new WareHouseMan();
sm.show();
this.hide();
}
}
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Username or Password Didn't Match!!");
}
}
此处:
if (Position.equals("Service"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
EmployeeMenu serviced = new EmployeeMenu();
serviced.show();
this.hide();
}
if(Username.equals("") || Password.equals(""))
在这种情况下,如果您的用户名不为空且密码为空,那么这将 return 为真,因为
OR 运算符检查第一个条件,如果为真则不会检查第二个条件。如果第一个不成立,那么它将检查另一个条件
所以首先更正。
其次,代替 rs.next();
尝试使用以下内容,也许它有效。
while(rs.hasNext()){......}
在我更新代码和更新数据库之前的第一次尝试所有系统 运行 正确。问题是当用户名和密码更正时,消息框也不会出现在下一个表单中。当用户名和密码错误时,才会出现按摩框。数据库已经连接,程序读取它。
这是我的代码:
private void LoginButtonActionPerformed(java.awt.event.ActionEvent evt) {
try
{
pr = con.prepareStatement("SELECT * FROM Employee WHERE username = ? and pass = ?");
String Us = Username.getText();
String PW = Password.getText();
if(Username.equals("") || Password.equals(""))
{
JOptionPane.showMessageDialog(null, "You Need To Fill Username and Password");
}
else
{
pr.setString(1, Us);
pr.setString(2, PW);
rs = pr.executeQuery();
rs.next();
String EmployeeName = rs.getString("nama");
String Position = rs.getString("posisi");
String EmpID = rs.getString("id");
EmpLem = EmpID;
if (Username.equals(rs.getString("username"))&& Password.equals(rs.getString("pass")))
{
if (Position.equals("Service"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
EmployeeMenu serviced = new EmployeeMenu();
serviced.show();
this.hide();
}
else if (Position.equals("superadmin"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
SuperMenu sm = new SuperMenu();
sm.show();
this.hide();
}
else if (Position.equals("Warehouse"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
WareHouseMan sm = new WareHouseMan();
sm.show();
this.hide();
}
}
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Username or Password Didn't Match!!");
}
}
此处:
if (Position.equals("Service"))
{
JOptionPane.showMessageDialog(null, "Login Success! Welcome " + EmployeeName + ".");
EmployeeMenu serviced = new EmployeeMenu();
serviced.show();
this.hide();
}
if(Username.equals("") || Password.equals(""))
在这种情况下,如果您的用户名不为空且密码为空,那么这将 return 为真,因为
OR 运算符检查第一个条件,如果为真则不会检查第二个条件。如果第一个不成立,那么它将检查另一个条件
所以首先更正。
其次,代替 rs.next();
尝试使用以下内容,也许它有效。
while(rs.hasNext()){......}