Quel est le meilleur moyen de générer une arborescence hiérarchique en asp.net (C#) à partir d'une table de base de données SQL contenant tous les employés d'une entreprise ? Je ne saurai jamais à quel niveau ou à quel employé je commencerai. Je ne sais jamais à quel niveau ou à quel employé je vais commencer.
Réponses
Trop de publicités?Première option : Obtenir des données hiérarchiques de la base de données sous forme XML (avec l'instruction FOR XML de SQL Server 2005 et des versions plus récentes), puis les désérialiser dans un objet business entity ou les utiliser directement dans l'interface utilisateur en tant que source de données (les contrôles treeview prennent en charge les sources de données XML). Avec SQL Server 2008, vous pouvez également utiliser le champ HIERARCHYID au lieu de ParentID, ce qui simplifie les choses liées au stockage et à l'extraction des données hiérarchiques. Avec ce champ, l'instruction SELECT qui extrait les données d'un nœud spécifié sera beaucoup plus simple.
Consultez la technique du Modified Preorder Tree Traversal à l'adresse suivante :
http://www.sitepoint.com/article/hierarchical-data-database/ http://en.wikipedia.org/wiki/Tree_traversal http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=1266295 http://iamcam.wordpress.com/2006/03/17/storing-hierarchical-data-in-a-database-part-1/