Vanilson 2 Denunciar post Postado Maio 23, 2011 Pessoal é o seguinte eu estou a tentar verificar se o meu ResultSet está vazio, caso isso aconteça ele envia uma msg, o que está a acontecer é que se a base de dados tiver alguma informação ele não mostra a informação, mais envia a msg caso a base de dados esteja vazia. Eis o codigo: public void visualizar() { try { conexao = Conexao.ligarBd(); pstm = conexao.prepareStatement(visualizar); rs = pstm.executeQuery(); if (!rs.next()) { System.out.println("Não existem registos na base de dados para serem visualizados"); } else { while (rs.next()) { System.out.printf("Codigo: " + rs.getString(1) + "\n" + "Nome: " + rs.getString(2) + "\n" + "Genero: " + rs.getString(3) + "\n" + "Data de nascimento: " + rs.getString(4) + "\n"); System.out.println("-----------------------------------------------------------------------------------------" + "----------------------------------------------------"); } } rs.close(); pstm.close(); conexao.close(); } catch (SQLException sqle) { System.out.printf("Erro ao visualizar os dados"); } } Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Maio 23, 2011 Sua lógica está errada. Você está dando um next no if e logo abaixo no else você dá mais um next no while. Você bem poderia dar uma melhorada nesse código. Mas independentemente disso, se quiser resolver rápido, acrescente um beforeFirst() acima do while. rs.beforeFirst(); // move o cursor para o início do result set. while (rs.next()) { // ... } Compartilhar este post Link para o post Compartilhar em outros sites