Официальный сайт студ.городка НГТУ
Программирование и БД » [vb.net]соединить TreeView и Базу данных 

#1  10.09.07 14:16

[vb.net]соединить TreeView и Базу данных

Доброе время суток!
Посоветуйте решением.
Как можно контрол TreeView подключить к такой таблице в базе MS SQL

id   Name                Child
1    Группа1             0
2    Группа2             0
3    Подгруппа1       1
4    Подгруппа2       1
5    Подгруппа3       2
6   Подподгруппа1  5

И получить динамически заполненное дерево

Группа1
    |_Подгруппа1
    |_Подгруппа2
Группа2
    |_Подгруппа3
       |_Подподгруппа1

Может есть готовые решения на этот счет, или готовые контролы позволяющие сделать такое

Исправлено eagle (10.09.07 14:20)

Offline

#2  10.09.07 17:54

Maq
Профиль

Re: [vb.net]соединить TreeView и Базу данных

впринципе, если твоя программ уже работает с mssql то такое сделать легко.
просто сделать запрос, бегать по его результатам и добовлять элементы в дерево.

Offline

#3  10.09.07 22:37

Re: [vb.net]соединить TreeView и Базу данных

Если не трудно можете привести пример динамического(программного) заполнения дерева, любой глубины

Offline

#4  11.09.07 23:42

Maq
Профиль

Re: [vb.net]соединить TreeView и Базу данных

Offline

#5  03.10.07 15:25

Re: [vb.net]соединить TreeView и Базу данных

что не склеилось у меня с этим примером

Private Sub tree_load()
        Dim sqlc As SqlCommand
        Dim opp(128) As Integer
        Dim opp_ As Integer = 0

        sqlc = New SqlCommand
        sqlc.Connection = Me.SqlConnection1
        sqlc.Connection.Open()
        Dim i As Integer = 0
        Dim reader As System.Data.SqlClient.SqlDataReader
        sqlc.CommandText = "Select * from T_Deportament"
        reader = sqlc.ExecuteReader
        '
        TreeView1.Nodes.Clear()
        Dim Nodes As SortedList = New SortedList
        Dim rootNode As New System.Windows.Forms.TreeNode
        reader.Read()

        rootNode.Text = reader!NAME.ToString()
        TreeView1.Nodes.Add(reader!ID, rootNode.Text)


        While (reader.Read())
            Dim ParentNode As New System.Windows.Forms.TreeNode
            ParentNode.Text = reader!NAME.ToString()
            'MsgBox(reader!parentID)
            ParentNode.Tag = reader!parentID
            Nodes.Add(reader!ID, ParentNode.Text)
        End While
        reader.Close()


        Dim lvl As Integer

        For i = 1 To Nodes.Count - 1

            If Nodes.GetByIndex(i).Tag > 1 Then
                lvl = Nodes.GetByIndex(i).ToString
                Nodes(lvl).Nodes.Add(Nodes.GetByIndex(i))
            Else
                MsgBox(Nodes.GetByIndex(i))
                If Nodes.GetByIndex(i).Tag <> 0 Then
                    opp_ = opp_ + 1
                    opp(opp_) = i
                End If
            End If
        Next
        Dim t As Integer
        For t = 1 To opp_
            TreeView1.Nodes.Add(Nodes.GetByIndex(opp(t)))
        Next t
        sqlc.Connection.Close()

Вот он в моей интерпритации

Исправлено eagle (03.10.07 15:57)

Offline

Программирование и БД » [vb.net]соединить TreeView и Базу данных 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.032 сек.
Выполнено 14 запросов.