Tratamento de consulta vazia no mysql (Resolvido)

5 respostas
P

Pessoal estou querendo fazer um tratamento de consultas vazias no mysql. Eu pego o número do agente e consulto no banco, caso o resultado seja vazio retornar uma mensagem na tela. No código abaixo quando retorna nao vazio ele exibe numero "nao encontrado" e quando retorna vazio não exibe nada.

while (rs.next()) 
              {
                  if (!rs.next()) {
                        JOptionPane.showMessageDialog(null, "Numero nao encontrado") ;
                  }
                  else { 
                        String agente_consulta= rs.getString("telefone");
                        JOptionPane.showMessageDialog(null, agente_consulta) ;
                   }                   
                 
              }

5 Respostas

lucas_carvalho100

Caso a query retorne somente um registro somente este trecho basta

if (!rs.next()) {  
                        JOptionPane.showMessageDialog(null, "Numero nao encontrado") ;  
                  }  
                  else {   
                        String agente_consulta= rs.getString("telefone");  
                        JOptionPane.showMessageDialog(null, agente_consulta) ;  
                   }

Pois quando vc entra no while ele roda a query uma vez, e quando ele entra no if roda novamente ai termina os registros…

P

lucas_carvalho100:
Caso a query retorne somente um registro somente este trecho basta

if (!rs.next()) {  
                        JOptionPane.showMessageDialog(null, "Numero nao encontrado") ;  
                  }  
                  else {   
                        String agente_consulta= rs.getString("telefone");  
                        JOptionPane.showMessageDialog(null, agente_consulta) ;  
                   }

Pois quando vc entra no while ele roda a query uma vez, e quando ele entra no if roda novamente ai termina os registros…

O problema ainda persiste, quando passo uma informação que tem retorno ele retorna “não encontrado” e quando passo uma informação que não tem retorno não volta nada.

P

Alguém pode me ajudar?

drsmachado

1 - Se a query não encontrar nada, o resultSet não terá next.
Eu colocaria um contador, iniciado em zero. Caso ele entre no loop, incremento esse contador. Ao finalizar, comparo se o contador é zero, se for, retorno o erro “Nenhum número encontrado”. Se não, retorno o que é desejado.

rs = ps.getResultSet();
            int cont = 0;
            while (rs.next()) {
                cont++;
            }
            if(cont == 0){
                System.out.println("Nada encontrado");
            }else{
                System.out.println("Algo encontrado");
            }

Claro, o contador é um exemplo, se você quer um objeto, pode verificar se ele é nulo, se a lista está com size = 0, etc.

P

Resolvi o problema da seguinte forma:

if (rs.next()){
                String destino= rs.getString("destino");
                jTextField2.setText(agente);
                jTextField3.setText(destino);
   }
   else {
             JOptionPane.showMessageDialog(null, "NUMERO OU AGENTE NÃO ENCONTRADO!");
   }
Criado 30 de junho de 2011
Ultima resposta 5 de jul. de 2011
Respostas 5
Participantes 3