JDBC连接数据库读取数据异常

JDBC连接sql server 通过 while (rs.next())循环语句只能读取到第二条数据
问题背景:首先没有使用while 循环 只能读取到第一条数据,再加入while循环之后,只能读取第二条数据,while循环仅循环一次,依旧无法解决问题,问题代码如下:

if (jr1.isSelected()) //非管理员登陆
                    {
                        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
                        String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=hangkongsystem";
                        String userName = "sa";
                        String userPwd = "sa";
                        String passWord;
                        userId = null;

                        try {
                            Class.forName(driverName);
                        }

                        catch (Exception e1) {
                            e1.printStackTrace();
                        }

                        try {

                            Connection con = DriverManager.getConnection(dbURL, userName, userPwd);//
                            Statement s = (Statement) con.createStatement( );
                            String r2 = "select * from 账户密码";

                            ResultSet rs = ((java.sql.Statement) s).executeQuery(r2);
                            while (rs.next()) {
                                rs.next();
                                userId = rs.getString("顾客ID").trim();
                                passWord = rs.getString("passwd").trim();

                                s.close();
                                con.close();


                                if (userId.equals(jtf1.getText()) && passWord.equals(jtf2.getText())) {
                                    new kehu(userId);
                                    jfrm.setVisible(false);
                                } else {
                                    JOptionPane.showMessageDialog(null, "用户id或密码不正确!");
                                }

                            }
                        }
                        catch(Exception e1)
                            {
                                e1.printStackTrace();
                            }


                    }

第26行注释掉 rs.next();试试

31行s.close();和32行 con.close();
放到while循环之外。先遍历完查询到的数据再关闭连接,放在循环之内的话,只有第一次循环有连接对象,关闭了之后,后面的循环获取不到连接对象,就会报错。