Inquiridor
Com pesquisar qualquer parte do texto no datagridview usando o LIKE % ?

Discussão Geral
-
Boa noite colegas!
Como pesquisar no datagridview qualquer parte do texto usando o LIKE igual no SQL pesquisar qualquer parte pesquisada?
abaixo tenho o codigo do formulario com o datagridview:
Dim ListaGeralProvincias As List(Of DAL.LT_ProvinciasResult)
Private Sub FrmListaProvincias_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DGVListaProvincia.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
DGVListaProvincia.AllowUserToAddRows = False
DGVListaProvincia.AllowUserToDeleteRows = False
DGVListaProvincia.EditMode = DataGridViewEditMode.EditProgrammatically
DGVListaProvincia.AllowUserToResizeColumns = False
DGVListaProvincia.AllowUserToOrderColumns = False
'DGVListaPaises.AutoGenerateColumns = True 'Aqui estamos a dizer que gere colunas automaticas
DGVListaProvincia.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
DGVListaProvincia.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
'Vamos alterar a core das linhas alternadas no grid
DGVListaProvincia.RowsDefaultCellStyle.BackColor = Color.White
DGVListaProvincia.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque
'Seleciona a selula inteira
DGVListaProvincia.SelectionMode = DataGridViewSelectionMode.FullRowSelect
'Não permitir a seleção de multiplas linhas
DGVListaProvincia.MultiSelect = False
'Aqui desativamos a criação via codigo das colu7nas do gride, porque alteramos os nomes das propriedades nas classes datacontext
'Aqui criamos as colunas no datagrid
DGVListaProvincia.Columns.Add("colID_PROVINCIA", "Codigo")
DGVListaProvincia.Columns.Add("colID_CONTINENTE", "Codigo do Continente")
DGVListaProvincia.Columns.Add("colID_PAIS", "Codigo do Pais")
DGVListaProvincia.Columns.Add("colSIGLA_PROVINCIA", "Sigla da Provincia")
DGVListaProvincia.Columns.Add("colDESCRIÇÃO_PROVINCIA", "Nome da Provincia")
DGVListaProvincia.Columns.Add("colDESCRIÇÃO_PAIS", "Nome do Pais")
DGVListaProvincia.Columns.Add("colDESCRIÇÃO_CONTINENTE", "Nome do Continente")
DGVListaProvincia.Columns(0).DataPropertyName = "ID_PROVINCIA"
DGVListaProvincia.Columns(1).DataPropertyName = "ID_CONTINENTE"
DGVListaProvincia.Columns(2).DataPropertyName = "ID_PAIS"
DGVListaProvincia.Columns(3).DataPropertyName = "SIGLA_PROVINCIA"
DGVListaProvincia.Columns(4).DataPropertyName = "DESCRIÇÃO_PROVINCIA"
DGVListaProvincia.Columns(5).DataPropertyName = "DESCRIÇÃO_PAIS"
DGVListaProvincia.Columns(6).DataPropertyName = "DESCRIÇÃO_CONTINENTE"
'aqui usamos uma consulta linque para fazer o preenchimento do datagridview
Using contexto As New DAL.DANIROSADataContext
ListaGeralProvincias = contexto.LT_Provincias.ToList
End Using
CarregarGridProvincias(ListaGeralProvincias)
'Aqui oucultamos a linha que contem o codigo do continente, exibimos apenas o nome do continente
DGVListaProvincia.Columns(1).Visible = False
DGVListaProvincia.Columns(2).Visible = False
'Aqui posicionamos o texto das colunas,
DGVListaProvincia.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DGVListaProvincia.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DGVListaProvincia.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DGVListaProvincia.Focus()
'Aqui Aqui estamos a contar o total de registros no datagridview
LblNumeroProvincia.Text = DGVListaProvincia.Rows.Count.ToString()
End Sub
'Aqui a rotina que vai fazer o carregamento dos dados no datagridview
Private Sub CarregarGridProvincias(ListaProvincias As IList(Of DAL.LT_ProvinciasResult))
DGVListaProvincia.DataSource = ListaProvincias
DGVListaProvincia.Update()
End Sub
Abaixo no TxtPesquisarNomeProvincia_TextChanged enves de usar o containe eu queria usar o LIKE % como ficaria ?
Private Sub TxtPesquisarNomeProvincia_TextChanged(sender As Object, e As EventArgs) Handles TxtPesquisarNomeProvincia.TextChanged
'Aqui este codigo faz a consulta no datagrid dos carateres digitados pelo usuario no Textbox Pesquisar pelo codigo
Dim ListaGeralPesquisa As IList(Of DAL.LT_ProvinciasResult) = _
ListaGeralProvincias.Where(Function(w) w.DESCRIÇÃO_PROVINCIA.Contains(TxtPesquisarNomeProvincia.Text)).ToList()
CarregarGridProvincias(ListaGeralPesquisa)
End Sub
Boa noite e obrigado
Agradecia..
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
Todas as Respostas
-
-
Veja aqui um exemplo de pesquisa filtrada em uma DataGridView:
Private Sub textBox1_TextChanged(sender As Object, e As EventArgs) Dim conn As New SqlConnection("Password=mbm;Persist Security Info=True;User ID=sa;Initial Catalog=modelo_redex;Data Source=192.168.0.2\SQLEXPRESS") Dim cmd As New SqlCommand("select * from entidade", conn) conn.Open() Dim dt As New DataTable() Dim da As New SqlDataAdapter(cmd) da.Fill(dt) Dim dv As New DataView(dt) dv.RowFilter = "nm_entidade like'" + textBox1.Text & "%'" 'DataGridView que recebera o valor filtrado / pesquisado dataGridView1.DataSource = dv conn.Close() End Sub
Fonte: http://forum.imasters.com.br/topic/327538-pesquisar-no-datagridview-atravs-de-textbox/
- Editado Mr. GMSOFT terça-feira, 21 de outubro de 2014 20:37
-
-
E ai conseguiu resolver com alguma solução sugerida?
- Editado Mr. GMSOFT quarta-feira, 22 de outubro de 2014 18:46