Ayuda con Treeview en Visual Studio 2010

Buen día

Quisiera si me pueden ayudar tengo un treeview donde lo quiero llenar con varias tablas de una base de datos las cuales están relacionadas por un campo ya puedo cargar los primeros nodos pero en el nodo final me duplica los items

las tablas están relacionadas por el campo codProyecto y tienen en común otras dos columnas

este es el código que tengo ojala y alguien pueda ayudarme con este inconveniente

Dim daPadres As New OleDb.OleDbDataAdapter("Select * from Proyecto ", cnn)
Dim daHijos As New OleDb.OleDbDataAdapter("Select * from Trabajos", cnn)
Dim daHijos1 As New OleDb.OleDbDataAdapter("Select * from Partida", cnn)
Dim daHijos2 As New OleDb.OleDbDataAdapter("Select * from ManoObra", cnn)
Dim dsDatos As New DataSet
daPadres.Fill(dsDatos, "Proyecto")
daHijos.Fill(dsDatos, "Trabajos")
daHijos1.Fill(dsDatos, "Partida")
daHijos2.Fill(dsDatos, "ManoObra")
Dim parentColumn As DataColumn = _
dsDatos.Tables("Proyecto").Columns("CodProyecto")
Dim childColumn As DataColumn = _
dsDatos.Tables("Trabajos").Columns("CodProyecto")
Dim childColumn1 As DataColumn = _
dsDatos.Tables("Partida").Columns("CodProyecto")
Dim childColumn2 As DataColumn = _
dsDatos.Tables("ManoObra").Columns("CodProyecto")
Dim rel As DataRelation = _
New DataRelation("Proyecto_Trabajos", _
parentColumn, childColumn, True)
Dim rel1 As DataRelation = _
New DataRelation("Partida_Trabajos", _
parentColumn, childColumn1, True)
Dim rel2 As DataRelation = _
New DataRelation("ManoObra_Partida", _
parentColumn, childColumn2, True)
dsDatos.Relations.Add(rel)
dsDatos.Relations.Add(rel1)
dsDatos.Relations.Add(rel2)
TreeView1.BeginUpdate()
TreeView1.Nodes.Clear()
For Each padre As DataRow In dsDatos.Tables("Proyecto").Rows
' Creamos el nodo padre.
Dim parentNode As TreeNode = _
New TreeNode(padre.Item("CodProyecto").ToString)
' Lo añadimos a la colección Nodes del control TreeView.
TreeView1.Nodes.Add(parentNode)
' Añadimos un objeto TreeNode hijo por cada objeto Hijo existente
' en el objeto Padre actual.
'
For Each hijo In padre.GetChildRows("Proyecto_Trabajos")
' Creamos el nodo hijo
Dim childNode As TreeNode = _
New TreeNode(hijo.Item("No_trabajo") & " " & hijo.Item("Desc_trabajo").ToString)
' Lo añadimos al nodo padre
parentNode.Nodes.Add(childNode)
For Each hijo1 In padre.GetChildRows("Partida_Trabajos")
' Creamos el nodo hijo
Dim childNode2 As TreeNode = _
New TreeNode(hijo1.Item("No_partida") & " " & hijo1.Item("Alcances").ToString)
' Lo añadimos al nodo padre
parentNode.Nodes(0).Nodes.Add(childNode2)
For Each hijo2 In padre.GetChildRows("ManoObra_Partida") "en esta parte es donde lo duplica"
Dim childNode3 As TreeNode = _
New TreeNode(hijo2.Item("Descripcion").ToString)
' Lo añadimos al nodo padre
parentNode.Nodes(0).Nodes(0).Nodes.Add(childNode3)
Next
Next
Next
Next
' Repintamos TreeView.
'
TreeView1.EndUpdate()
Catch ex As Exception
MsgBox(ex.Message)
End Try

espero que alguien me pueda orientar

Gracias JFernandez

Añade tu respuesta

Haz clic para o