Pesquisas com Datagridview - VB.net 2005

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Implementando pesquisas no datagridview, controle windows forms do framework 2.0

O datagridview é uma das melhores ferramentas do framework 2.0 para windows forms, semelhante ao gridview do asp.net, podemos incrementar avançadas scripts de recuperamento de dados, e ainda, super customizável.
  Neste artigo estarei mostrando como fazer pesquisas nesta ferramenta, atravez de uma textbox, sem a necessidade de um button para dar o comando e sim o evente de texto editado(text changed).
  Vamos ao trabalho:
 
  Inicie o visual studio 2005, ou a versão express da mesma;
  Crie um novo projeto visual basic windows application com o nome: PesquisaGridView;(figura1)
  Figura1.JPG
 Figura1
 
Formate o Form1 de acordo com a figura2;(na figura2 estão listados os nomes de cada controle)
Figura2.JPG
Figura2
 
  Clique 2x no formulário para que abra a página de código e o evento form1_load, para quando o formulário for carregado seja executado o código abaixo:
 
Private
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                                                                                     
  Me.dgvClientes.Rows.Add("Danillo Barros", "Cuiabá", "3626-2626")
  Me.dgvClientes.Rows.Add("Danilo Barros", "Cuiabá", "3626-2626")
  Me.dgvClientes.Rows.Add("João Pereira", "Brasília", "3253-7878")
  Me.dgvClientes.Rows.Add("Jorge Meneguel", "Curitiba", "3626-2626")
  Me.dgvClientes.Rows.Add("Miguel Cristiano", "São Paulo", "3100-3050")
  Me.dgvClientes.Rows.Add("Mike Souza", "Campo Grande", "3626-2626")
  Me.dgvClientes.Rows.Add("Rodrigo Carlos", "Rio de Janeiro", "3874-9898")
  Me.dgvClientes.Rows.Add("Eduardo Costa", "Palmas", "3232-5555")
                                                                                         
End Sub
  Estou adicionando dados em nosso grid, simulando uma pesquisa em um banco de dados, nada impede que você faça o teste com dados de uma tabela. Salve e de um build na aplicação, rode e teste a mesma para ver se os dados foram adicionados no grid. Bom, agora vamos a finalidade deste artigo, no evento textchanged do txtpesquisa adicione o código abaixo, que esta totalmente comentado:       
Private Sub txtPesquisa_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
  txtPesquisa.TextChanged
  texto que representará o valor da célula do grid
  Dim txt As String = Nothing
  percorre linha por linha da grid
  For Each row As DataGridViewRow In dgvClientes.Rows
    percorre cada celula da linha
    For Each cell As DataGridViewCell In dgvClientes.Rows(row.Index).Cells
     se a caixa de texto nao estiver vazia prossegue, caso não
     tira a seleção da linha do grid
     If txtPesquisa.Text <> "" Then
     se for a primeira coluna, no caso a coluna Nome
       If cell.ColumnIndex = 0 Then
          atribui a valor a variavel txt, passando tudo convertido para minusculo
          txt = cell.Value.ToString.ToLower
          se essa variavel tiver caracteres que corresponde ao da pesquisa no texto,
          tambem convertido para o minusculo
          If txt.Contains(txtPesquisa.Text.ToLower) Then
            faz o teste para ver se o valor da celula comeca com o mesmo valor
            da pesquisa, caso sim, seleciona a linha do grid
            If txt.StartsWith(txtPesquisa.Text.ToLower.Substring(0, txtPesquisa.Text.Length)) Then
             Me.dgvClientes.Rows(cell.RowIndex).Selected = True
            End If
          End If
        End If
      Else
        Me.dgvClientes.Rows(cell.RowIndex).Selected = False
      End If
    Next
  Next
End Sub
Salve o projeto, compile e execute o programa, altere o texto de pesquisa e veja que conforme muda o texto, no gridview é selecionado a linha que mais coincide com o texto. É isso ai, espero que tenham gostado desse artigo, apesar de pequeno é muito útil. Muito obrigado e até a próxima!
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?