Treeview - Sortieren aus einer Datenbank.

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ThuCommix.

    Treeview - Sortieren aus einer Datenbank.

    Hallo Leute, habe ein kleines Problemchen beim Sortieren von verschiedenen Eingaben aus der
    Datenbank in ein Treeview.

    Die Datenbank sieht folgendermassen aus:

    OID POID Name
    1 0 Datei
    2 0 Oberfäche
    3 0 Karbon
    4 3 Best-of
    5 3 Jahreskalender 2011
    6 1 Ausschüsse allgemein
    7 2 Termine_Januar
    8 1 Kandidatenlisten-2010


    So erstelle ich das bisherige Treeview:

    VB.NET-Quellcode

    1. Option Explicit On
    2. Option Strict On
    3. Imports System.Data.SqlClient
    4. Imports System.Data
    5. Imports System.ComponentModel
    6. Imports System.IO
    7. Imports System.Drawing
    8. Imports System.Diagnostics
    9. Imports Microsoft.VisualBasic
    10. Partial Class _Default
    11. Inherits System.Web.UI.Page
    12. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    13. TreeView1.Nodes.Clear()
    14. Dim rootNode As New TreeNode("Übersicht")
    15. TreeView1.Nodes.Add(rootNode)
    16. addChildNodes(rootNode)
    17. TreeView1.Nodes(0).Expand()
    18. End Sub
    19. Private Sub addChildNodes(ByVal dirNode As TreeNode)
    20. Using conn As New SqlConnection("Data Source=EM090;Initial Catalog=File_Datenbank;Integrated Security=True;Pooling=False")
    21. Dim sqlRead As String = "SELECT Name FROM Directory WHERE POID = 0"
    22. Try
    23. conn.Open()
    24. Dim sqlCom As New SqlCommand(sqlRead, conn)
    25. Dim r As SqlDataReader = sqlCom.ExecuteReader
    26. Do While (r.Read())
    27. Dim newNode As New TreeNode(r("Name").ToString)
    28. dirNode.ChildNodes.Add(newNode)
    29. addChildChildNodes(newNode)
    30. Loop
    31. Catch ex As Exception
    32. conn.Close()
    33. End Try
    34. End Using
    35. End Sub
    36. Private Sub addChildChildNodes(ByVal dirNode As TreeNode)
    37. Using conn As New SqlConnection("Data Source=EM090;Initial Catalog=File_Datenbank;Integrated Security=True;Pooling=False")
    38. 'Dim sqlRead As String = "SELECT FileName FROM Files"
    39. Dim sqlRead As String = "Select a.Name,a.OID, b.name,b.oid from Directory a inner join Directory b on a.OID=b.poid where a.poid=0" & _
    40. "order by a.OID,b.oid"
    41. Try
    42. conn.Open()
    43. Dim sqlCom As New SqlCommand(sqlRead, conn)
    44. Dim r As SqlDataReader = sqlCom.ExecuteReader
    45. Do While (r.Read())
    46. Dim newNode As New TreeNode(r("name").ToString)
    47. dirNode.ChildNodes.Add(newNode)
    48. Loop
    49. Catch ex As Exception
    50. conn.Close()
    51. End Try
    52. End Using
    53. End Sub
    54. End Class



    In der Methode addChildChildNodes fehlt mir der richtige "SELECT" um den einzelnen Trees die richtigen Childs
    zuzuweisen.

    SQL-Abfrage

    1. Select a.Name,a.OID, b.name,b.oid from Directory a inner join Directory b on a.OID=b.poid where a.poid=0 order by a.OID,b.oid

    Mit diesem Code habe ich die Datenbank bereits so ausselektiert das die 5 Eingaben den "Ordnern" zugewiesen werden:

    Name OID name oid
    Dateien 1 Ausschüsse allgemein 6
    Dateien 1 Kandidatenliste-2010 8
    Oberfläche 2 Termine_Januar 7
    Karbon 3 Best-of 4
    Karbon 3 Jahreskalender 2011 5

    Sämtliche Zuweisungen funktionieren nicht richtig : /
    Es geht mir wirklich nur um den Select in addChidChildNode!
    Kann mir jemand helfen? :)