Como saber se o select retornou algo?

2 respostas
Willdoidao

Tenho uma aplicação que vai ter um botão de busca quero saber como faço para saber se voltou algo do banco ou não tentei com um if mas não está dando certo!!

O codigo atual é esse:

private void JB_BuscarActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        Connection conn = new conecao().conectar();
        ResultSet rs = null;
        JT_ref.setBackground(Color.green);
        JT_cor.setEditable(false);
        JT_qua.setEditable(false);
        JT_tam.setEditable(false);
        JC_Fab.setEnabled(false);
        JC_modelo.setEnabled(false);
        JC_tipo.setEnabled(false);

        String busca;
        int auxiliar3;

        busca = JT_ref.getText();
        busca = busca.trim();
        busca = busca.toUpperCase();


        try {
            // Cria e executa uma instrução SQL
            MeuState = conn.createStatement();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "erro de STATEMENT");

        }
        try {
            rs = MeuState.executeQuery("select * from arma where refe='" + busca + "';");
            System.out.println(rs);

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema de conexao: " + ex.getMessage());
        }
        try {

            if (rs != null) {
                caso = 1;
                while (rs.next()) {

                    JC_tipo.addItem(rs.getString("Tipo"));
                    JC_modelo.addItem(rs.getString("Modelo"));
                    JT_cor.setText(rs.getString("Cor"));
                    JC_Fab.addItem(rs.getString("Fabricante"));

                    auxiliar3 = rs.getInt("Quanti");
                    JT_qua.setText(String.valueOf(auxiliar3));

                    auxiliar3 = rs.getInt("Tamanho");
                    JT_tam.setText(String.valueOf(auxiliar3));
                    id = rs.getInt("Id_arma");
                }
            } else {
                JOptionPane.showMessageDialog(null, "Não existe no Cadastro!");
                caso = 0;
            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema de conexão: " + ex.getMessage());
        }


        JT_cor.setEditable(true);
        JT_qua.setEditable(true);
        JT_tam.setEditable(true);
        JC_Fab.setEnabled(true);
        JC_modelo.setEnabled(true);
        JC_tipo.setEnabled(true);



    }

2 Respostas

dyorgio

troque o seu while no rs por isso:

// se retornou algo
if (rs.next()){
 do {
// processa a linha aqui
}while (rs.next());
}else{
//nada de retorno
}
mgarcia
  1. fazer como o dyorgio mostrou
  2. vc pode fazer um select count
  3. ou então pode fazer um contador dentro do looping while(rs.next)… se no final do looping o contador for igual a 0… é pq não retornou nada…
Criado 18 de fevereiro de 2010
Ultima resposta 18 de fev. de 2010
Respostas 2
Participantes 3