How to generate TreeView using DataReader?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lenniekuah
    New Member
    • Oct 2006
    • 126

    #1

    How to generate TreeView using DataReader?

    Hullo Awesome Friends,

    WINDOW Based Application using VBNET2008, DataReader and TreeView Control Nodes
    I need your help, Please help me.

    I am using TreeView controls and having problem writing the coding as I have not done it before.

    Listed beow are the SQL String and the result of it. And also the Proposed Desired display on TreeView.

    SQL String :
    SELECT OrderID, OrderDate ProductID
    FROM Invoices WHERE (CustomerID = N'Chops') Order by OrderID, Orderdate

    Result of SQL String
    OrderId OrderDate ProdID
    10254 11/07/1996 74
    10254 11/07/1996 24
    10254 11/07/1996 55
    10254 23/07/1996 105
    10254 23/07/1996 96
    10254 25/07/1996 82

    10370 03/12/1996 74
    10370 03/12/1996 1
    10370 03/12/1996 64
    10370 03/12/1996 56

    10519 28/04/1997 10
    10519 28/04/1997 60

    ---------------------------------------------------------
    Proposal Desired TreeView Display Format during RunTime
    How to use DataReader (While DR.READ()) in order to create the structure listed below
    10254
    |______11/07/1996
    |__________74
    |__________24
    |_________ 55
    |______ 23/07/1996
    |_________ 105
    |_________ 96
    |_________ 82


    10370
    |______03/12/1996
    |_________74
    |_________1
    |_________64
    |_________56

    10519
    |_______28/04/1997
    |________

    Thank you very much for your help.
    Last edited by lenniekuah; Feb 9 '11, 02:08 AM. Reason: error
  • pod
    Contributor
    • Sep 2007
    • 298

    #2
    what you might want to do is add the parent nodes (Order ID) in the _Load method and add the child nodes in _BeforeExpand method
    Code:
    (_Load method)
    nodecnt = 0
    While reading [distinct_Order_ID result set]
       myTreeView.Nodes.Add(Order ID)
       myTreeView.Nodes(nodecnt).Nodes.Add("Empty")
       nodecnt += 1
    Loop
    
    (BeforeExpand method)
    If e.Node.Level = 0 Then
       e.Node.Nodes.Clear()
       nodecnt = 0
       <-- create query based on the selected Order ID "e.Node.Name"-->
       While reading [invoices_selected_Order_ID result set]
          <-- firstencounter-->
          'here you have to put in some conditional stuff to add only and Order Date node when first encountered
          if firstencounter then
              Me.edaTreeView.Nodes(e.Node.Name).Nodes.Add(Order Date)
          end if
          <-- end of firstencounter-->
          Me.edaTreeView.Nodes(e.Node.Name).Nodes(nodecnt).Add(ProductID)
          <-- firstencounter-->
          if firstencounter then
             nodecnt += 1
          end if
          <-- end of firstencounter-->
       Loop
    
    End If
    Loop

    Comment

    Working...