You could use a datareader/dataset to get the data from the database. you will have to write a function to allocate the parent node and then add every child node to it. You may have to write a recursiuve function, if the tree is complex. Tarakeshwar CCIE Q(Routing and Switching), MCSE Security