Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/04/2009, 09:07
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Cómo lleno el treeview desde una sola tabla de mi bd?

Bueno aca te paso un Ejemplo de como llenar tu treeview pero solo lo llena hasta el nivel Nieto
eso quiere decir q dentro del nodo nieto no puede haber nodos

Código vb:
Ver original
  1. Dim Con As New SqlConnection("SERVER=(LOCAL);DATABASE=BD;UID=SA;PWD=;")
  2. Dim Adp As SqlDataAdapter
  3. Dim Ds As DataSet
  4. Dim Dt As New DataTable
  5. Dim Dw As New DataView
  6. Dim Nodo As TreeNode
  7.  
  8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9.  
  10. ' Si la Conexion esta Abierta entonces la Cierro
  11.        If Con.State = 1 Then Con.Close()
  12.         ' Abro una Nueva Conexion
  13.        Con.Open()
  14.  
  15.         Adp = New SqlDataAdapter("Select * From Cuentas", Con) ' Ejecuntando la Consulta
  16.        Ds = New DataSet                    ' Creando un Nuevo Objeto DataSet
  17.        Adp.Fill(Ds, "x")                   ' Llenando el DataSet con el Resultado de la Consulta ' Asignando la Tabla al DataTable
  18.        Dw.Table = Ds.Tables("x")           ' Asignando al DataView Nuestro DataTable
  19.        Dw.RowFilter = "CuentaPadre = '0'"     ' Filtrando por El Padre
  20.        Dt = Dw.ToTable                     ' Asignando al DataTable la Tabla Filtrada
  21.  
  22.         With TreeView1
  23.             .BeginUpdate()  ' Evitando la Actualizacion del Control
  24.  
  25.             Nodo = .Nodes.Add("Plan de Cuentas")
  26.             For Each Row As DataRow In Dt.Rows
  27.  
  28.                 Nodo.Nodes.Add(Row(0) + " - " + Row(3)) ' Rellenando el Nodo Principal
  29.                Dw.Table = Ds.Tables("x")
  30.                 Dw.RowFilter = "CuentaPadre = '" + Row(0).ToString + "'"
  31.                 Dt = Dw.ToTable
  32.  
  33.                 For Each RowH As DataRow In Dt.Rows
  34.  
  35.                     ' Agregando el Hijo
  36.                    Nodo.Nodes(Nodo.Nodes.Count - 1).Nodes.Add(RowH(0) + " - " + RowH(3))
  37.                     Dw.Table = Ds.Tables("x")
  38.                     Dw.RowFilter = "CuentaPadre = '" + RowH(0).ToString + "'"
  39.                     Dt = Dw.ToTable
  40.  
  41.                     For Each RowN As DataRow In Dt.Rows
  42.                         ' Agregando el Nieto
  43.                        Nodo.Nodes(Nodo.Nodes.Count - 1).Nodes(Nodo.Nodes(Nodo.Nodes.Count - 1).Nodes.Count - 1).Nodes.Add(RowN(0) + " - " + RowN(3))
  44.                     Next
  45.                 Next
  46.             Next
  47.  
  48.             .EndUpdate()        ' Actulizando el Control
  49.            .AllowDrop = True   ' Realizar Drag and Drop
  50.            .Sort()
  51.  
  52.         End With
  53.  
  54. End Sub
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Última edición por Dradi7; 23/04/2009 a las 11:56