سلام

کسی میدونه چطوری باید اطلاعات Mysql رو بریزیم توی Treeview ی چیزی شبیه شکل زیر؟
جدول دیتابیس هم شبیه شکل زیره :

البته با ی روشی تا یک Child به Root اضافه کردم ولی برای سه ستون و بیشتر جواب نمیده، ممنون میشم راهنمایی کنید :

Public Sub Fill_Node_Tree()
Tview_Nodes.Nodes.Clear()
Dim dict As New Dictionary(Of String, List(Of String))()
For Each row As Data.DataRow In fill_TreeViewProject.Rows
Dim ParentRow As String = DirectCast(row.Item(1), String)
Dim ChildRow As String = DirectCast(row.Item(0), String)


If ParentRow Is Nothing OrElse ChildRow Is Nothing Then
Continue For
End If


If dict.ContainsKey(ParentRow) Then
'Add Child if parent already exist
dict(ParentRow).Add(ChildRow)
Else
'Add parent if dosen't exist and attach the child
dict.Add(ParentRow, New List(Of String)())
dict(ParentRow).Add(ChildRow)
End If
Next


Dim node As TreeNode


For Each kvp In dict
'Add Parent node
node = New TreeNode(kvp.Key)
Tview_Nodes.Nodes.Add(node)


'Loop through list value and add to parent item as childs
For Each chiled As String In kvp.Value
node.Nodes.Add(chiled)
Next




Next
End Sub


    Public Function fill_TreeViewProject() As DataTable
DT_Project_tree_dt.Clear()
MyQuery = ""
Dim conString As String = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", server, userName, password, DatabaseName)
Using con As New MySqlConnection(conString)
MyQuery = "SELECT DISTINCT(Child), Root, Id FROM Project_tree;"


Using cmd As New MySqlCommand(MyQuery, con)
cmd.CommandType = CommandType.Text
Using sda As New MySqlDataAdapter(cmd)
Using DT_Project_tree_dt
sda.Fill(DT_Project_tree_dt)
Return DT_Project_tree_dt
End Using
End Using
End Using
End Using
End Function