Populate a treeview

Hi experts,
I've been tasked with populating a treeview within vb.net (windows application)

I've been given the SQL and can successfully connect to the DB and return the data into a datatable.

the data looks like this....


USER_ID,NAME,ROLE_ID,ROLE_DESC,ACTIVE_IND
1,ANDREW SIMPSON,1,Information,Y
1,ANDREW SIMPSON,2,Registry,Y
2,GEORGE Binns,1,Information,Y
2,GEORGE Binns,3,Charge,Y
5,PAUL BOWMAN,1,Information,Y
5,PAUL BOWMAN,2,Registry,Y
5,PAUL BOWMAN,3,Charge,Y
88,MICK JAGGER,1,Information,Y
88,MICK JAGGER,2,Registry,Y
88,MICK JAGGER,3,Charge,Y

However i'm struggling to populate a treeview it should look like

Name
   Role description
   Role description
Name
   Role description

So should look like
Andrew Simpson
   Information
   Registry
George Binns
   Information
   Charge
etc etc.....

Any help would be very useful as i've not used the treeview before and struggling at the moment
Thanks
Mark
potnoodle13Asked:
Who is Participating?
 
Daniel Van Der WerkenIndependent ConsultantCommented:
Sorry. I'm a C# dev and figure it's not too hard to translate. Here is a link using VB .NET
http://www.codeproject.com/Articles/23114/Working-with-TreeView-Controls

If you are reading from a database, you'd do something like this: (psuedocode because I don't really know VB .NET all that well):

while (myReader.Read() )
   begin
      Dim mynode As new TreeNode()
      mynode.Name = myReader("NAME")
      mynode.Text = myReader("NAME")
      Dim mySubNode As new TreeNode()
      mySubNode.Name = myReader("ROLE")
      mySubNode.Text = myReader("ROLE")
      mynode.Nodes.Add(mySubNode)
      treeView1.Nodes.Add(mynode)
   end

Open in new window

0
 
Daniel Van Der WerkenIndependent ConsultantCommented:
Here is an example in C#.
http://www.dotnetperls.com/treeview

TreeView is a collection of nodes, so you would populate nodes and subnodes and then add them to the treeview.
0
 
potnoodle13Author Commented:
thank you for the quick response however as you said that is C# not VB.NET i've checked the link and it doesn't help as it doesn't have any database connection at all
0
 
CodeCruiserCommented:
Once you have the datatable, you can get the unique names into another table

assuming that dTable is the datatable

Dim dNames As DataTable = dTable.DefaultView.ToDataTable(true, "Name")
For i as integer = 0 to dNames.Rows.Count - 1
    MyTree.Nodes.Add(New TreeNode(dNames.Rows(i).Item("Name")))
Next

Then handle the BeforeExpand event of tree.

dTable.DefaultView.RowFilter = "Name='" & e.Node.Text & "'"
For i As Integer = 0 to dTable.DefaultView.Count - 1
      e.Node.Nodes.Add(New TreeNode(dTable.DefaultView.Item(i).Item("Role_Desc")))
Next
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.