0

データベースからレコードを取得してログインフォームを作成しようとしていますが、レコードが最初の位置にある場合は正常に実行されますが、2 番目の位置にある場合は最初に Record not found の出力が表示され、次に Record found が表示されます。

これが私のインスタンスコードです。

for(int i=1;i<noOfColumn;i++)
{        
    while(rs.next())
    {
        if(x.equals(rs.getString(1)))
        {
            if(kk.equals(rs.getString(2)))
            {
                JOptionPane.showMessageDialog(l1, "Logged in successfully");
                break;
            }
        }
        else
            JOptionPane.showMessageDialog(b1, "Log in Failed");
    }
}
4

2 に答える 2

0

SQLステートメントを実行して結果セットを取得し、それを繰り返し処理する必要があるforループを持つ必要があるとは思わない

PreparedStatement statement = sqlConnection.prepareStatement("SELECT userId, password FROM login where username=? and password=?");
statement.setString(1, unametype);
statement.setString(2, passwordtype);
ResultSet rs = statement.executeQuery();
while(rs.next()){
    if(rs.getString(1).equals(usernametype)){
       if(rs.getString(2).equals(passwordtype)){
          // successful message
       }else{
          // invalid password
       }
    }else{
       // invalid username
    }   
}
于 2013-10-10T08:02:48.557 に答える