Classificando e Filtrando Dados no VB.NET

O objetivo deste Tutorial é mostrar como utilizar o objeto DataView para classificar e filtrar dados, um recurso muito utilizando nas aplicações que manipulam dados. Para entender este tutorial você precisa ter conhecimentos em Visual Basic.NET e ADO.NET e noções de instruções SQL ...

17/07/03h

Diminuir o tamanho das letras Aumentar o tamanho das letras

Microsoft .NET

O objetivo deste Tutorial é mostrar como utilizar o objeto DataView para classificar e filtrar dados, um recurso muito utilizando nas aplicações que manipulam dados. Para entender este tutorial você precisa ter conhecimentos em Visual Basic.NET e ADO.NET (para saber mais sobre isso consulte os Tutoriais "Mudanças do ADO para o ADO.NET" e "Acesso a dados com o VB.NET") e noções de instruções SQL.

Softwares utilizados :

- Microsoft Visual Studio.NET 2003 Enterprise Architect (também conhecido como "Everett" ou versão 7.1) - Beta Final
- Microsoft SQL Server 2000 Enterprise Edition

Requisitos do sistema:

- Processador Intel Pentium II /AMD K6-2 a partir de 450 Mhz (Pentium III/AMD Duron a partir de 600 Mhz recomendados)

- Memória RAM: 96 Mb para Windows 2000 Pro (recomendado 128 Mb), 192 Mb para Windows 2000 Server (recomendado 256 MB), 96 Mb para Windows XP Home (recomendado 160 Mb) e 192 Mb para Windows XP Pro/Windows Server 2003 (recomendado 256 Mb)- 4.1 GB no drive da instalação e 900 Mb no drive do sistema;

- Sistema Operacional: Windows 2000*, Windows XP ou Windows Server 2003 (é possível executar aplicações desenvolvidas com o VS.NET no Windows 98/Me/NT 4 mas não é possível desenvolver as aplicações nesses sistemas). * o Windows 2000 Datacenter Server não é suportado.     

- Drive de CD-ROM ou DVD-ROM

- Internet Explorer 5.0 ou superior

- Placa de vídeo e monitor que suporte resolução de 800x600 e 256 cores (Recomendado High Color 16-Bit)

- Mouse

O objeto DataView

O objeto DataView é parte da arquitetura do ADO.NET: ele representa uma "visão" (é muito semelhante as objetos View de bancos de dados como o SQL Server) de um DataTable para navegação, classificação, filtragem e busca. O DataView se difere de uma View de banco de dados por não poder ser tratado como uma tabela ou ser preenchida por um comando JOIN, ou seja, deve haver um DataView para cada tabela e também pelo fato do DataView poder alterar os dados do DataTable ao qual pertence.

Ele possui muitas funcionalidades além da filtragem, classificação, navegação e busca, como por exemplo, poder mostrar os dados em estados diferentes: você pode criar um form com dois DataGrid, um ligado a um DataView que mostra os dados no estado atual e outro ligado a um DataView que mostra todos os dados apagados na transação atual.

Primeiramente abra o Visual Studio.NET e crie uma nova aplicação "Windows Application" em "Visual Basic Projects":


New Project

Vamos montar nosso form: arraste um Button ("btnOK"), um DataGrid ("Grid"), um Textbox ("txtFiltro") e um Combobox ("cmbClass"). Veja como ficará o layout do form:


Layout do form

No "txtFiltro" será estabelecido o filtro que será utilizado e no combo "cmbClass" escolheremos a classificação Crescente ou Decrescente (note que a ordenação será feita sempre pelo campo "CustomerID" e o filtro será aplicado no campo CompanyName). Ao clicar no botão OK, aplicaremos o filtro e ordenação ao objeto DataView e atualizaremos o Grid. Se o "txtFiltro" estiver vazio aplicaremos somente a ordenação. Selecione o "cmbClass" e na janela Properties apague qualquer conteúdo da propriedade Text, em seguida selecione a propriedade Items e clique no botão "..." ao lado da mesma. Será apresentada a janela "String Collection Editor", onde colocaremos os itens disponíveis:


Itens do ComboBox "cmbClass"

Vamos criar os objetos para acesso a dados: crie um SqlConnection ("Conexao") que se conecta ao banco Northwind do SQL Server 2000. Adicione também um SqlDataAdapter ("Adapter"), que é preenchido com a seguinte query SQL: "SELECT CustomerID, CompanyName FROM Customers". Veja a área de componentes invisíveis em tempo de execução com os objetos criados:


Objetos criados

Agora daremos funcinalidade ao form adicionando código. Adicione na primeira linha do código, antes de qualquer coisa, a seguinte linha:

  
Imports System.Data.SqlClient

Logo abaixo da linha "Inherits System.Windows.Forms.Form" digite:

  Dim dvCustomers As DataView 'cria objeto DataView
 Dim dsCustomers As New DataSet 'cria objeto DataSet

Agora adicione o seguinte código no evento Form1_Load:

  Conexao.Open()
  Adapter.Fill(dsCustomers, "Customers")
  Conexao.Close()
  System.Data.DataView(dsCustomers.Tables("Customers"), _
  "CompanyName like '%'", "CustomerID ASC", _
  DataViewRowState.OriginalRows)
  Grid.DataSource = dvCustomers
  Grid.CaptionText = "Qtde: " & dvCustomers.Count.ToString 'mostra a qtde de registros no caption do DataGrid

Atenção para a sintaxe da criação do DataView:

dvCustomers = New System.Data.DataView (tabela, filtro, ordenação, estAado da tabela)

Estabelecemos os filtro para que pegue todos os registros, e a ordenação pelo campo CustomerID Crescente (ASC), o estado é o original (OriginalState). Agora clique duas vezes sobre o botão btnOK e vamos inserir o código para o evento btnOK_Click:

  Dim Filtro As String
  If txtFiltro.Text.Trim <> "" Then 'testa se o campo não está vazio
    Filtro = "CompanyName LIKE '" & txtFiltro.Text & "%'"
    dvCustomers.RowFilter = Filtro   'aplica o filtro
    If cmbClass.Text = "Crescente" Then 'testa a ordenação
      dvCustomers.Sort = "CustomerID ASC"
    Else
      dvCustomers.Sort = "CustomerID DESC"
    End If
  Else 'se o filtro estiver vazio, só faz a ordenação
    If cmbClass.Text = "Crescente" Then
      dvCustomers.Sort = "CustomerID ASC"
    Else
      dvCustomers.Sort = "CustomerID DESC"
    End If
  End If
  Grid.DataSource = dvCustomers
  Grid.CaptionText = "Qtde: " & dvCustomers.Count.ToString
End Sub

Note que os filtros que estabelecemos possuem o sinal "%" no final da expressão: ele serve como um coringa (que é o * em nomes de arquivos, por exemplo), estabelecendo que o filtro é o texto do nosso TextBox e qualquer outra coisa depois. Agora vamos executar nosso programa. Veja abaixo as possibilidades existentes:


Estado normal ao executar o form



Aplicando ordenação Decrescente



Aplicando ordenação Crescente



Aplicando um filtro e ordenação Crescente



Aplicando um filtro e ordenação Decrescente



Conclusão

A utilização do objeto DataView é muito útil quando queremos apenas fazer uma consulta a uma fonte de dados e nos permite filtrar os dados da maneira que quisermos e ordená-los de acordo com a escolha do usuário. Com esses recursos é possível criar-se consultas personalizadas com diversas opções de filtragens em vários campos de uma tabela, isso fica a critério do desenvolvedor e das necessidades do cliente.

Marcas Registradas
Visual Basic.NET, Visual Studio.NET, Windows, SQL Server são marcas registradas da Microsoft Corporation.
Todos os demais nomes registrados, marcas registradas ou direitos de uso citados neste TM pertencem a seus respectivos proprietários.

 

Autor original:  ClawHammer
Direitos Autorais:  BABOO




imprima este artigo
envie este artigo via e-mail

 

Artigos relacionados


Mais Notícias desta Área

Últimas Notícias
 
 Software  |  Hardware  |  Segurança  |  Tecnologia  |  Tutoriais  |  Download  |  Web  | Desenvolvimento  |  Fórum 
 Mundo Corporativo  |  Carreira  |  Mercado  |  Telecom  |  Servidores  |  Tecnologia 
    BABOO é um site brasileiro de TI focado em informática, tecnologia, software,hardware, tutoriais e downloads, e soluções de dúvidas através do nosso fórum.

 

Artigos do BABOO