Usuário com melhor resposta
Como filtrar Datagridview sem QUERY (Ou com Inner Join)

Pergunta
-
Respostas
-
Olá,
Se você não quer fazer nenhum tipo de query e trabalhar apenas com o Grid, pode fazer assim (não é tão performático):
string pesquisa = "Teste"; foreach(DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value != null) row.Visible = row.Cells[0].Value.ToString().ToLower().Contains(pesquisa.ToLower()); }
Para limpar o filtro:
foreach(DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value != null) row.Visible = true; }
Apenas fique atento para o detalhe, eu coloquei como se a coluna que deseja pesquisar fosse a primeira (Indice 0), se for outra precisa mudar.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Robson William SilvaModerator quarta-feira, 16 de novembro de 2016 11:54
Todas as Respostas
-
Olá,
Se você não quer fazer nenhum tipo de query e trabalhar apenas com o Grid, pode fazer assim (não é tão performático):
string pesquisa = "Teste"; foreach(DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value != null) row.Visible = row.Cells[0].Value.ToString().ToLower().Contains(pesquisa.ToLower()); }
Para limpar o filtro:
foreach(DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value != null) row.Visible = true; }
Apenas fique atento para o detalhe, eu coloquei como se a coluna que deseja pesquisar fosse a primeira (Indice 0), se for outra precisa mudar.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Robson William SilvaModerator quarta-feira, 16 de novembro de 2016 11:54
-
-
Tentei mas deu erro! :/
Até que pesquisa certinho, mas quando eu apago o textbox pra escrever outra coisa ele dá bug
Código:
Public Sub FiltrarNome() Dim pesquisa As String = txtprocura.Text For Each row As DataGridViewRow In Servicos_mensaisDataGridView.Rows If row.Cells(0).Value IsNot Nothing Then row.Visible = row.Cells(0).Value.ToString().ToLower().Contains(pesquisa.ToLower()) End If Next End Sub Private Sub txtprocura_TextChanged(sender As Object, e As EventArgs) Handles txtprocura.TextChanged FiltrarNome() If txtprocura.Text = "" Then For Each row As DataGridViewRow In Servicos_mensaisDataGridView.Rows If row.Cells(0).Value IsNot Nothing Then row.Visible = True End If Next End If End Sub
-
Qual erro dá? Talvez seja só um detalhe
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
pegue a lista gerada e se voce estiver procurando uma entidade , da pra usar o .Select(x=>x.variavelQueEuQuero)
vou se voce montar a consulta via linq da pra usar o contain, que ele vai fazer a consulta como se fosse um like do sql server
-
Boa tarde,
Devido a falta de interação do autor dessa pergunta,
essa thread está sendo fechada. Caso o problema ainda
esteja ocorrendo, favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.