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.
[code]while (rs.next())
{
if (!rs.next()) {
JOptionPane.showMessageDialog(null, “Numero nao encontrado”) ;
}
else {
String agente_consulta= rs.getString(“telefone”);
JOptionPane.showMessageDialog(null, agente_consulta) ;
}
}
[/code]
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…
[quote=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…[/quote]
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.
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.
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!");
}