none
Pesquisa sem acento RRS feed

  • Pergunta

  • Usuário cometeu um erro e verifiquei que e importante, ele foi fazer uma pesquisa e não estava encontrando o cliente então verifiquei que o usuário estava esquecendo de colocar o acento no nome da pessoa, tem alguma opção para quando eu fizer o select eu fazer uma consulta sem o acento ?

    Ex: no banco tem uma cliente chamada Cíntia ( com acento no í ), quando o usuário for pesquisar ela poderá digitar Cintia sem acento que vai aparecer todas as Cintia com acento e sem acento ; )


    Atenciosamente,
    José Henrique Sabino

    segunda-feira, 6 de julho de 2015 12:41

Respostas

  • Olá José.

    Encontrei um link que pode resolver seu problema, assim como resolveu o meu. Uma idéia bem simples que apliquei em meu software.

    Segue o link:

    http://fabiocabral.gabx.com.br/2013/03/c-funcao-para-remover-acentos.html


    /* Lembre-se, somos voluntários. Não se esqueça de votar na melhor resposta! */ Potyguara Tupinambás

    • Marcado como Resposta Marcos SJ quinta-feira, 9 de julho de 2015 13:18
    segunda-feira, 6 de julho de 2015 19:16

Todas as Respostas

  • Olá,

     como é feito seu acesso a dados ? Utiliza algum ORM ou ADO puro ? Detalhe isso...

    segunda-feira, 6 de julho de 2015 13:07
  • Não sei de que forma vc acessa o banco de dados na sua aplicação, mas deixo aqui o link de um artigo em que demonstro uma alternativa para resolver este problema:

    http://www.devmedia.com.br/eliminando-caracteres-especiais-de-strings-no-sql-server-collate/25286

    segunda-feira, 6 de julho de 2015 13:09
  •  if (txtpesquisa.Text != "Pesquisa Rápida")
                {
                    SqlCommand consulta = new SqlCommand();
                    //configuraar o comando que será executado no banco
                    consulta.Connection = clsdb.AbreBanco();
                    consulta.CommandType = CommandType.Text;
    
                    string filtro = "";
    
                    filtro = " and nome like '" + txtpesquisa.Text + "%'";   
                            consulta.CommandText = "SELECT * FROM pessoa INNER JOIN classificacoes ON pessoa.classificacao_id = classificacoes.id where estado <> '" + "Inativo" + "' and pessoa.classificacao_id = 1 " + filtro + " order by pessoa.nome ASC";
    
                            da.SelectCommand = consulta;
                            DataTable dt = new DataTable();
                            da.Fill(dt);
    
                            dgvPessoas.DataSource = dt;
                        
                       
                    }


    Atenciosamente,
    José Henrique Sabino

    segunda-feira, 6 de julho de 2015 13:41
  • Desse modo que foi proposto por você RENATO GROffe, no select a pesquisa será mostrada para mim sem o acento, quero que ele consulte sem acento e no meu datagrid aparece com o acento

    Atenciosamente,
    José Henrique Sabino

    segunda-feira, 6 de julho de 2015 13:43
  • Olá José,

     nesse caso sua saída é utilizar o Sql Accent-Insensitivity veja um exemplo :

    Sql Accent Insensitivity

     Espero que lhe ajude.

    segunda-feira, 6 de julho de 2015 19:10
  • Olá José.

    Encontrei um link que pode resolver seu problema, assim como resolveu o meu. Uma idéia bem simples que apliquei em meu software.

    Segue o link:

    http://fabiocabral.gabx.com.br/2013/03/c-funcao-para-remover-acentos.html


    /* Lembre-se, somos voluntários. Não se esqueça de votar na melhor resposta! */ Potyguara Tupinambás

    • Marcado como Resposta Marcos SJ quinta-feira, 9 de julho de 2015 13:18
    segunda-feira, 6 de julho de 2015 19:16