当我登录时,一切都很完美。但是当我输入一个不存在的帐户时,消息对话框会根据数据库中的帐户数量循环显示。我相信这是因为我使用了 while(rss.next()) 。 这是我的代码:
try {
if(e.getSource()==loginButton){
int count = 1;
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=login_DB;integratedSecurity=true");
st=conn.createStatement();
rss=st.executeQuery("select * from tblLogin");
while(rss.next()){
String user = rss.getString(1);
String pass = rss.getString(2);
if(usernameTF.getText().equals(user)&&passwordTF.getText().equals(pass)){
JOptionPane.showMessageDialog(null,"YEAAAA");
}//if success
else {
JOptionPane.showMessageDialog(null,"Account doesn't exist! Please try again.");
}
}//while
}//getsource loginButton
最佳答案
做这样的事情..
int flag = 0;
if(usernameTF.getText().equals(user) && passwordTF.getText().equals(pass))
{
flag=1; // if found then, value change to 1 otherwise it will be 0
}
//Now, put below condition after while loop
if (flag==1) {
JOptionPane.showMessageDialog(null,"YEAAAA");
}
else {
JOptionPane.showMessageDialog(null,"Account doesn't exist! Please try again.");
}
或
正如 @Thilo 建议的那样,您可以在 SELECT
查询中使用 WHERE
子句。
关于Java与SQL登录相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438938/