none
Com pesquisar qualquer parte do texto no datagridview usando o LIKE % ? RRS feed

  • 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

    quinta-feira, 20 de fevereiro de 2014 23:38

Todas as Respostas

  • Qual o problema que está acontecendo?
    terça-feira, 21 de outubro de 2014 14:02
  • 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
    terça-feira, 21 de outubro de 2014 14:19
  • Boa noite Daniel,

    Faça igual o Mr. GMSOFT falou, deixe o comando LIKE fixo no código.

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    terça-feira, 21 de outubro de 2014 20:19
  • E ai conseguiu resolver com alguma solução sugerida?
    • Editado Mr. GMSOFT quarta-feira, 22 de outubro de 2014 18:46
    quarta-feira, 22 de outubro de 2014 18:05