none
¿Como puedo agregar nodos hijos y nietos a un control Treeview en Visual Basic.Net?

    Pregunta

  • Hola bien dìa.

    Estoy intentando cargar datos de una tabla de access a un control Treeview en mi proyecto. He logrado agregrar los nodos raiz e hijos, pero no logro que se agregen los nietos, bisnietos, etc.

    Asì esta estructurada mi tabla:

    Ejemplo:

    Nodo - Descripcion - Padre

    C001 - Raiz 1 - P
    C001.1 - Hijo 1 - C001
    C001.2 - Hijo 2 - C001
    C001.3 - Hijo 3 - C001
    C001.3.1 - Nieto 1 - C001.3
    C001.3.2 - Nieto 2 - C001.3
    C001.3.2.1 - Bisnieto 1 - C001.3.2
    C001.3.2.2 - Bisnieto 2 - C001.3.2

    Este es el còdigo que estoy utilizando:

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim Padre As String
    Dim Descripcion As String
    Dim Nodo As String

    Dim Conexion As ADODB.Connection
    Dim Nodos As ADODB.Recordset
    Dim CNodos As String

    Conexion = New ADODB.Connection
    Nodos = New ADODB.Recordset
    CNodos = "SELECT Nodo,Descripcion,Padre from Indice"
    Conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=C:\Arbol.mdb;Persist Security Info=False")
    Nodos.Open(CNodos, Conexion)

    ObjArbol.Nodes.Clear()
    Nodos.MoveFirst()

    Do While Not Nodos.EOF

    Padre = Nodos.Fields("Padre").Value
    Descripcion = Nodos.Fields("Descripcion").Value
    Nodo = Nodos.Fields("Nodo").Value

    If Padre = "P" Then

    ObjArbol.Nodes.Add(Nodo, Descripcion)

    Else

    If ObjArbol.Nodes.ContainsKey(Padre) Then

    ObjArbol.Nodes(Padre).Nodes.Add(Nodo, Descripcion)

    End If

    End If

    Nodos.MoveNext()

    Loop

    End Sub

    Estoy haciendolo en Visual Studio 2008 (VB.Net), ojala puedan ayudarme.

    Un abrazo.
    jueves, 29 de septiembre de 2011 4:10

Todas las respuestas