سلام
کسی میدونه چطوری باید اطلاعات 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