نمایش نتایج 1 تا 3 از 3

نام تاپیک: Treeview and Mysql

  1. #1

    Question Treeview and Mysql

    سلام

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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1391
    پست
    1,026

    نقل قول: Treeview and Mysql

    اگه امکانش هست ساختار جدول تون رو تغییر بدید. نیازی هم نیست جدولی که میخواهید از تابع برگردونده بشه Using کنید. موردی رو Using کنید که میخواهید در همون تابع ایجاد و نابود بشه.
    treetable.png


    Public Sub Fill_Node_Tree()
    Tview_Nodes.Nodes.Clear()
    Dim dict As New Dictionary(Of Integer, TreeNode)
    For Each row As Data.DataRow In GetProject_tree().Rows
    Dim id As Integer = row.Item(0)
    Dim itemName As String = row.Item(1)
    Dim parentId As Integer = IIf(row.Item(2) Is DBNull.Value, -1, row.Item(2))
    Dim node As New TreeNode(itemName)
    node.Name = id
    node.Tag = parentId
    dict.Add(id, node)
    If parentId = -1 Then
    Tview_Nodes.Nodes.Add(node)
    End If
    Next
    For Each item In dict.Values
    If dict.ContainsKey(item.Tag) Then
    dict(item.Tag).Nodes.Add(item)
    End If
    Next
    Tview_Nodes.ExpandAll()
    End Sub

    Public Function GetProject_tree() As DataTable
    Dim dt As New DataTable
    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)
    Using cmd As New MySqlCommand("SELECT id, item_name, parent_id FROM Project_tree;", con)
    Using sda As New MySqlDataAdapter(cmd)
    sda.Fill(dt)
    Return dt
    End Using
    End Using
    End Using
    End Function
    End Class

  3. #3

    نقل قول: Treeview and Mysql

    سپاس، ساختار دیتابیسم رو تغییر دادم عالی و بدون نقص اجرا میشه. ممنون

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: شنبه 04 مرداد 1393, 12:01 عصر
  2. نسخه silent از mysql connector برای ارتباط با پایگاه داده mysql هم از روی local هم از راه دور
    نوشته شده توسط Black_Strom در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 2
    آخرین پست: دوشنبه 07 آذر 1390, 12:38 عصر
  3. کمک : کار با TreeView SilverLight بصورت دستی - بهمراه Telerik TreeView
    نوشته شده توسط sanay_esh در بخش Silverlight
    پاسخ: 2
    آخرین پست: شنبه 28 آبان 1390, 21:36 عصر
  4. سوال: پیدا کردن یک نود از یک treeview در یک treeview دیگر
    نوشته شده توسط danial82 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: سه شنبه 14 آبان 1387, 22:02 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •