JcomboBox Busca no banco

2 respostas
G
Eu to com um problema q é o seguinte eu tenho um combobox q carrega com uma coluno do meu banco, eu queria saber como eu faço para pegar a linha do combobox para preencher o item selecionado, tipo no Combobox trata a doença nele ja aparece para vc selecionar uma doença, eu queria saber como eu faço uma pesquisa apartir do intem selecionado no combobox, eu tentei o seguinte:
if(conecta() == 1)
    {
        try{
            String sql = "select descricao from relatorio.tbrelatorio where doenca = '"+rel_doenca.getSelectedIndex()+"'";
            ResultSet res = null;
            res = canal.executeQuery(sql);                   
            }
            catch (Exception e ){
                System.out.println(e.getMessage());
                
            }
        }
        desconecta();
Mas ñ deu certo e tb ñ da nenhum erro, alguem sabe como eu posso fazer isso? Para preencher o comobox eu usei o seguinte:
public void preencher() {   
    if (conecta() == 1)
       {
        try {   
           
            String SQL = "Select doenca from relatorio.tbrelatorio order by doenca";   
            ResultSet res = null;   
            res = canal.executeQuery(SQL);   
                while (res.next()) {   
                 rel_doenca.addItem(res.getString(1));
               }   
            res.close();   
        } catch (SQLException exc) {   
     System.out.println(exc.getErrorCode());   
        }  // fim do try-catch   
   }
   desconecta();
}  // fim do método preencher
Esse metodo acima o preenche funcionou certo ele traz o conteudo mas o pesquisa eu ñ consegui. Alguem pode me dar uma ajuda

2 Respostas

Marck

Olá

Não funcionou porque você está pegando o índice do Elemento Selecionado. No caso ele retorna 1, 2…
Você deve usar getSelectedItem(), que retorna um objeto com o valor selecionado.

Quanto ao seu select, voce pode usar o PreparedStatement para evitar alguns problemas de segurança nos seus aplicativos e para deixar o código mais limpo:

String sql = "select descricao from relatorio.tbrelatorio where doenca = ?"
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setObject( rel_doenca.getSelectedItem() );

Outra dica, o seu metodo conecta() retorna um inteiro e isso te força a fazer if(conecta() == 1). Seria melhor se ele retornasse um booleano, assim, voce faria

if(conecta())

A não ser que voce retorne não apenas 0 e 1, acho que dessa maneira fica mais legível.

Falou!

G
Eu acabei explicando errado, no meu combobox eu trago tudo oq esta cadastrado no meu banco na coluna doenca, como eu faço para retorantar o referente dele a coluna descricao em um Jlistbox, tipo eu seleciono uma doença no meu combobox mando pesquisar e ela me tras q descrição dela toda? entendeu o q eu quero fazer. Eu tentei fazer dessa maneira
try{
            String sql = "select descricao from relatorio.tbrelatorio where doenca = '"+rel_doenca.getSelectedItem()+"'";
            ResultSet res = null;
            res = canal.executeQuery(sql);    
            jlistbox.setToolTipText(res.getString(2));
            }
            catch (Exception e ){
                System.out.println(e.getMessage());
                
            }
        }
Mas ñ deu certo
Criado 7 de setembro de 2008
Ultima resposta 7 de set. de 2008
Respostas 2
Participantes 2