Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vanilson

Verificar se o ResultSet está vazio

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.