[RESOLVIDO] Ajuda com codigo java para pesquisa usando jtextfield

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…

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

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

opaaa, bora testar, ja volto

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

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

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

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);

blz, vou tentar

E aí? Conseguiu?

mesmo erro amigo

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

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

Coloca first aqui

nada, to ficando maluco ja… rsrs

na hora de mostrar

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!

bora pra cima

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

1 curtida