Jump to content
samesdavis

Filtrar grid com BindingSource ignorando acentuação

Recommended Posts

samesdavis

Olá pessoal,

Estou precisando de ajuda com um código aqui.

Uso o BindingSource para filtrar os dados da minha grid , porém quando o nome tem acentos, por exemplo Débora ou Debora está dando inconsitencia nos relatórios. Como faço para que mando eu digitar os dados na textbox, o BindingSource ignore a acentuação dos nomes? mesmo que eu digite Debora, ele irá trazer os nomes com Débora e Debora.

Share this post


Link to post
Share on other sites
samesdavis
3 horas atrás, Rechousa disse:

Viva,

Como tens o teu BindingSource?

Partilha, pf.

public void FiltrarGrid()
{
var cFiltro = new List<string>();

if (!string.IsNullOrEmpty(TxtNM_MEMFiltro.Text.Trim()))
{
cFiltro.Add(String.Format("NM_MEM LIKE '%{0}%'", TxtNM_MEMFiltro.Text));
}

if (cFiltro.Count >= 1)
{
queryFilter = String.Join(" AND ", cFiltro);
bs.Filter = queryFilter;
}
else
{
bs.Filter = "";
}
}

 

Share this post


Link to post
Share on other sites
Rechousa

A base de dados é SQL Server?

Se for, podes utilizar a COLLATE clause para indicar ao SQL Server que pretendes que a condição ignore acentuação e maísculas/minúsculas, exemplo:

-- Exemplos de carateres considerados: a,A,ã,Ã,á,à,Á,À
SELECT * FROM dbo.Tabela WHERE campo COLLATE LATIN1_GENERAL_CI_AI LIKE '%a%'

 

- LATIN1_GENERAL é a COLLATION recomendada para carateres latinos

- CI -> Case Insensitive, ou seja, não diferencia entre maiúsculas e minúsculas

- AI -> Accent Insensitive, ou seja, ignora acentuação

 

Espero ter ajudado,

Edited by Rechousa
  • Vote 1

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
samesdavis
3 horas atrás, Rechousa disse:

A base de dados é SQL Server?

Se for, podes utilizar a COLLATE clause para indicar ao SQL Server que pretendes que a condição ignore acentuação e maísculas/minúsculas, exemplo:


-- Exemplos de carateres considerados: a,A,ã,Ã,á,à,Á,À
SELECT * FROM dbo.Tabela WHERE campo COLLATE LATIN1_GENERAL_CI_AI LIKE '%a%'

Espero ter ajudado,

A base de dados é  Ms Access

Share this post


Link to post
Share on other sites
samesdavis
3 horas atrás, Rechousa disse:

Ok. Como é que tens nos relatórios?

Não entendi a pergunta?

A minha base de dados é  Ms Access, portando não aceitou aquele COOLATE que você citou.

Na minha tabela tenho dados com acentos e outros sem acentos.

No relatórios do reportviewer , desejo que saia o nome "normal" da pessoal, ou seja, com ou sem acento.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.