VB.NET  - Usando o controle TreeView III


Em diversos  artigos do site eu já abordei o controle TreeView. Se você pretende saber mais sobre este controle veja a relação abaixo:

O controle TreeView exibe uma coleção de itens maneira hierárquica como o Explorer do Windows:  Dependendo do seu projeto pode ser interessante usar os recursos deste controle.

O controle TreeView faz parte da seguinte hierarquia de classes:

Algumas características básicas do TreeView:

Neste artigo vou mostrar como podemos preencher um controle TreeView com o conteúdo de duas tabelas relacionadas.

Vamos acessar o banco de dados Northwind do SQL Server e usar as tabelas Categories e Products. Vejamos abaixo a estrutura destas tabelas:

tabela Categories tabela Products

Existe um relacionamento entre a tabela Products e Categories via campo CategoryID onde uma categoria pode conter muitos produtos.

Vamos então preencher o treeview com todas as categorias e a seguir para cada uma delas preencher com os dados dos produtos relacionados.

Inicie um novo projeto no VS.NET do tipo Windows Application usando a linguagem VB.NET. Altere o nome do formulário padrão para frmtvw1 e inclua no formulário um controle TreeView com o nome de - tvw1 - e um botão de comando - btntvw1 - conforme a figura abaixo:

Vamos agora definir a declaração do namespace para a classe de acesso a dados. Como vou acessar o SQL Server o namespace usado será::

Imports System.Data.SqlClient

Em seguida vamos definir variáveis e objetos que será usados no projeto:

' a conexao

Dim cn As SqlConnection
 

'Adaptadores para categorias e produtos

Dim daCategorias As SqlDataAdapter

Dim daProdutos As SqlDataAdapter

'O DataSet

Dim ds As DataSet

'Um DataView para os produtos

Dim dvProdutos As DataView

Finalmente no evento Click do botão de comando vamos incluir o código que irá fazer o resto do trabalho:

 Private Sub BtnTvw1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTvw1.Click

        'define string de conexao com o SQL Server , banco de dados Northwind
        Dim conexao As String = "server=(local);trusted_connection=true;database=Northwind;Integrated Security=SSPI"
        'cria uma nova conexao
        cn = New SqlConnection(conexao)

        'define os Adaptadores para categorias e produtos
        daCategorias = New SqlDataAdapter("Select * from Categories", cn)
        daProdutos = New SqlDataAdapter("Select * from Products", cn)

        'define o DataSet
        ds = New DataSet

        'preencher o DataSet com categorias e produtos
        Try
            daCategorias.Fill(ds, "Categorias")
            daProdutos.Fill(ds, "Produtos")
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try

        'definir o dataview para produtos
        dvProdutos = ds.Tables("Produtos").DefaultView

        'TreeView - define o No Raíz
        tvw1.Nodes.Add("Categorias")

        'Preenchendo o TreeView
        Dim dr As DataRow
        Dim nodo As TreeNode

        'percorre cada linha na tabela categorias 
        For Each dr In ds.Tables("Categorias").Rows

            'preencher todas as categorias com o nome -  CategoryName
            nodo = tvw1.Nodes(0).Nodes.Add(dr("CategoryName"))
            'preencher os produtos para cada categoria filtrando por codigo de categoria
            dvProdutos.RowFilter = "CategoryID = " & dr("CategoryID")

            'preenche os nos do treeview com o nome do produto para cada categoria
            Dim i As Integer
            For i = 0 To dvProdutos.Count - 1
                nodo.Nodes.Add(dvProdutos.Item(i).Row("ProductName"))
            Next
        Next

    End Sub

Ao executar o projeto quando o usuário clicar no botão para preencher o TreeView iremos obter:

O treeview exibindo as categorias

Ao clicar em um nó categoria teremos a exibição dos seus produtos

Embora seja um exemplo básico creio que deu para aumentar os horizontes quanto a utilização deste controle em seus projetos VB.NET

Pegue o código completo aqui : tvw1.zip

Eu sei , é apenas VB.NET , mas eu gosto...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti