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);
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?
nada, to ficando maluco ja… rsrs
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!
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();
}
ai sim… que beleza!!! muito obrigado amigo, tava ficando maluco ja.
1 curtida