[RESOLVIDO] Ignorar letras Maiúsculas de Minusculas em JTextField

11 respostas
H

Olá tudo bem? podem me ajudar? estou com uma duvida, como faço para ignorar letras maiúsculas de minusculas em um jTextField?

Seguinte, tenho um código que, ao digitar o nome do cliente, com o resultado ele gera a pesquisa em um JTable (usando o evento keyReleased), porem, se tiver um cliente cadastrado com o nome de Ricardo, e outro ronaldo, no momento que eu digito a letra “r” minuscula ele apenas retorna o resultado do ronaldo e não do Ricardo, o mesmo acontece ao contrario, gostaria que , ao digitar a letra “r” independente se for maiúscula ou minuscula retornar o resultado de ambos clientes.

Estarei colando aqui o código de pesquisa que estou utilizando.

preencherTabela(“SELECT * FROM tbservicos WHERE nome LIKE '%”+txtPesquisa.getText()+"%’");

obs: testei essa forma também e não retornou nenhum resultado:

preencherTabela(“SELECT * FROM tbservicos WHERE nome LIKE '%”+txtPesquisa.getText().equalsIgnoreCase(txtPesquisa.getText())+"%’");

Agradeço dês de já…

11 Respostas

Jederson_Andre

O metodo é este mesmo
equalsIgnoreCase

não deu certo?? qual erro??

H

Não da mensagem de erro, porem , no momento que eu escrevo qualquer letra (que seja inicial de cliente cadastrado) ele não popula o jTable, simplesmente não retorna nada

Jederson_Andre

Eu faço assim…
Ex:
vou pesquisar por pessoas que o nome inicie com "jo"
condição sql =

// considere os espaços 
select * from nomeTabela where nomeColuna like ' " + jo + "%' ";
H

sim, porem se eu realizar a pesquisa desta forma, no momento que se tiver algum cliente cadastrado com a inicial “JO” em maiúscula não ira retornar resultado, pois não ira ignorar as letras maiúsculas de minusculas

Jederson_Andre

Na minha base de dados os nomes estão com inicial em maiúsculas, e retorna blz, tano maiúscula como minuscula.
Posta como vc ta fazendo a conexao com o banco de dados

H
public class conexao {

public Statement stm; //responsavel pela pesquisa

public PreparedStatement pst = null ;

public ResultSet rs; //guarda o que foi pesquisado

private String driver = org.postgresql.Driver;//driver do banco de dados

private String caminho = jdbc:postgresql://localhost:5432/tcc”; //local do banco de dados

private String usuario = postgres; //usuario padrao

private String senha = admin; //senha banco de dados

public Connection conect;
public void conexao(){ // responsavel por realizar a conexao com o banco de dados
    System.setProperty("jdbc.Drivers", driver); //sertar conecção de draiver
    try {
        conect = DriverManager.getConnection(caminho ,usuario ,senha);
    
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao se conectar ao banco de dados:\n" +ex.getMessage());
    }
}

public void desconecta(){ // responsavel por desconectar do banco de dados
    try {
        conect.close();
    
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Falha ao desconectar do banco de dados:\n" +ex.getMessage());
    }
}

public void executaSQL(String sql){
    try {
        stm = conect.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
        rs = stm.executeQuery(sql);
    } catch (SQLException ex) {
       JOptionPane.showMessageDialog(null, "Erro:\n"+ex);
    }
}

}

Jederson_Andre

eu estou utilizando o

PreparedStatement invés de Statment;

 Connection con = conexao.metodoConecta();
 PreparedStatement stm = con.preparedStatement(sql);
 ResultSet rs = stm.executeQuerey();

 while(rs.next()){
  // captura de dados
 }
H

Se alterar não ira dar problema no restante?

Jederson_Andre

Altera somente no metodo que faz a captura no banco de dados.

tiagobernardo32

Seria isso?

SELECT * FROM tbservicos WHERE lower(nome) LIKE '%"+txtPesquisa.getText().toLowerCase()+"%';
H

Me salvou, valeu manoo

Criado 10 de novembro de 2017
Ultima resposta 12 de nov. de 2017
Respostas 11
Participantes 3