[RESOLVIDO] Ajuda com codigo java para pesquisa usando jtextfield

17 respostas
M

salve galera,
gostaria de uma ajuda de voces, quero fazer uma pesquisa no banco de dados pela data(string) usando um jTextfield, mas não estou conseguindo.

estou usando: preencherTable(“select * from cadastro where data like '%”+ jTextFieldPesqSv.getText()+ " %’" );

essa pesquisa iria aparecer numa table do formulário, que tem o método preencherTable, se eu usar: preencherTable(“select * from gu_sv” ); ele preenche, porém traz todos os dados do banco, e eu gostaria que o usuario buscasse digitando a data no textfield ex: 12ABR18 e ele rerornasse todos os cadastros feitos nesse dia.
se puderem ajudar…

17 Respostas

rodriguesabner

Botão direito no seu textField, eventos, key, keyReleased:

preencherTable("SELECT * FROM cadastro WHERE data LIKE '%" + jTextFieldPesqSv.getText() + "%'");

M

opaaa, bora testar, ja volto

M

Não deu amigo, da a seguinte msg: o resultset não está posicionado corretamente ou talvez precise chamar um next.

rodriguesabner

Opa, então tem algo errado com o seu método para preencher a tabela

M

bora la então:

esse é o codigo do metodo preencher tabela, segundo meu modelo tabelas
public void preencherTable(String Sql){

ArrayList dados = new ArrayList();
    String[] colunas = new String[]{"Nome","Função"};
            
    conecta.conexao();
    conecta.executaSQL(Sql);
    try{
    conecta.rs.next();
    do{
        dados.add(new Object[] {conecta.rs.getString ("nome"),conecta.rs.getString("funcao")});
        
    }while (conecta.rs.next());
            

}catch (SQLException ex){
    JOptionPane.showMessageDialog(rootPane,ex);//"Sem Dados para mostrar");
}
    ModeloTabelas modelo = new ModeloTabelas (dados,colunas);
    jTableAuxiliares.setModel(modelo);
    jTableAuxiliares.getColumnModel().getColumn(0).setPreferredWidth(50);
    jTableAuxiliares.getColumnModel().getColumn(0).setResizable(false);
    jTableAuxiliares.getColumnModel().getColumn(1).setPreferredWidth(30);
    jTableAuxiliares.getColumnModel().getColumn(1).setResizable(false);
    jTableAuxiliares.getTableHeader().setReorderingAllowed(false);
    jTableAuxiliares.setAutoResizeMode(jTableAuxiliares.AUTO_RESIZE_OFF);
    jTableAuxiliares.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    conecta.desconecta();
     }

o campo data não aparece na tabela, é somente para fazer a consulta mesmo, não me interessa esses dados na table

a tabela do banco de dados tem os campos: id, nome, funcao, data

rodriguesabner

Coloca a coluna Data na sua tabela e o codigo abaixo depois do: getColumn(1).setResizable(false);

jTableAuxiliares.getColumnModel().getColumn(2).setMaxWidth(0);
    jTableAuxiliares.getColumnModel().getColumn(2).setMinWidth(0);
    jTableAuxiliares.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(0);
    jTableAuxiliares.getTableHeader().getColumnModel().getColumn(2).setMinWidth(0);
M

blz, vou tentar

rodriguesabner

E aí? Conseguiu?

M

mesmo erro amigo

M

se eu retirar o filtro, ele funciona, mas traz todos os dados do banco, e eu queria pela data inserida no jText

rodriguesabner

Tem algo errado aí, o problema é na hora de mostrar as linhas na tabela ou na hora que você clica na tabela?

rodriguesabner

Coloca first aqui

M

nada, to ficando maluco ja… rsrs

M

na hora de mostrar

rodriguesabner
public void preencherTabela(String SQL) {
    conecta.conexao();
    ArrayList dados = new ArrayList();
    String[] Colunas = new String[]{"Nome", "Função"};

    conecta.executaSQL(SQL);
    try {
        conecta.rs.first();
        do {
            dados.add(new Object[] {conecta.rs.getString ("nome"),conecta.rs.getString("funcao")});
        } while (conecta.rs.next());
    } catch (SQLException ex) {
        //JOptionPane.showMessageDialog(rootPane, "Lista de cadastro vazia!"+ ex);
    }

    ModeloTabelas modelo = new ModeloTabelas(dados, Colunas);
    tabela.setModel((TableModel) modelo);
    jTableAuxiliares.setModel(modelo);
jTableAuxiliares.getColumnModel().getColumn(0).setPreferredWidth(50);
jTableAuxiliares.getColumnModel().getColumn(0).setResizable(false);
jTableAuxiliares.getColumnModel().getColumn(1).setPreferredWidth(30);
jTableAuxiliares.getColumnModel().getColumn(1).setResizable(false);
jTableAuxiliares.getTableHeader().setReorderingAllowed(false);
jTableAuxiliares.setAutoResizeMode(jTableAuxiliares.AUTO_RESIZE_OFF);
jTableAuxiliares.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    conecta.desconecta();
}

Não tem como dar erro agora, testei aqui e funcionou!

M

bora pra cima

M

ai sim… que beleza!!! muito obrigado amigo, tava ficando maluco ja.

Criado 3 de agosto de 2018
Ultima resposta 3 de ago. de 2018
Respostas 17
Participantes 2