treeview绑定数据可的例子
数据库里面有一个表,结构如: 
    id         lch         dyh         name1    
    1            五层      501            ww 
    2            七层      715            er   等等我想用树形结构将楼层,及对应的单元做成树形结构现在打算用treeview实现,请问怎么实现,只要实现马上给分!   
 如果有其他的简单办法也行,只要能实现这一个功能
------解决方案--------------------递归就行了,不难滴,一个自动增长列
------解决方案--------------------实现方式通过递归是最简单的,不过如果使用Stack来进行也没有问题。
你可以把表的数据装载到DataTable。然后通过DataTable来筛选数据生成TreeNode加入到TreeView。
注意这里可以活用TreeNode.Tag属性,用来包含相关DataRow的数据。
以下是我的一个程序的代码供参考:
表结构的关键列如下:
CategoryID 主键 int类型。
CategoryName nvarchar(32)类型。
ParentID 外键 int 类型。
-----------------
方式一:非递归加载数据
       public static void LoadCategoryData(TreeView treeView/*,DataTable dt*/)
       {
           DataTable dt = new DataTable();
           DocumentController.GetInstance().FillCategories(dt);
           Stack<TreeNode> stack = new Stack<TreeNode>();
           treeView.BeginUpdate();
           //add rootNode
           TreeNode rootNode = new TreeNode("文档管理", 0, 0);
           treeView.Nodes.Add(rootNode);
           //add childNodes           
           //TreeNode parentNode = rootNode;
           //添加一级分类	
           foreach (DataRow cateRow in dt.Select("ParentID IS NULL"))
           {
               Category category = new Category(cateRow);
               TreeNode node = new TreeNode(category.CategoryName, 1, 2);
               node.Tag = category;
               rootNode.Nodes.Add(node);
               stack.Push(node);
           }
           while (stack.Count > 0)//添加一级分类下面的子分类
           {
               TreeNode parentNode = stack.Pop();
               int id = ((Category)parentNode.Tag).CategoryID;
               foreach (DataRow cateRow in dt.Select("ParentID = " + id.ToString()))
               {
                   Category category = new Category(cateRow);
                   TreeNode childNode = new TreeNode(category.CategoryName, 1, 2);
                   childNode.Tag = category;
                   parentNode.Nodes.Add(childNode);
                   stack.Push(childNode);
               }
           }
           treeView.Nodes[0].Expand();
           treeView.EndUpdate();
       }
方式二:递归方式
//递归方式
		private static void LoadCategoryDataToTreeView()
		{
			this.treeView1.BeginUpdate();
			//this.treeView1.Nodes.Clear();
			//生成根节点
			CategoryTreeNode rootNode = new CategoryTreeNode(ApplicationGlobal.Instance.ApplicationSettings.CategoryRootNodeName,0,0);//技巧分类
			rootNode.CategoryData = null;
			this.treeView1.Nodes.Add(rootNode);
			//添加一级分类	
			foreach(DataSetSR.CategoriesRow cateRow in DataSettings.Instance.Data.Categories.Select("ParentId = 0"))
			{
				CategoryTreeNode tnode = new CategoryTreeNode(cateRow.CategoryName,1,2);
				tnode.CategoryData = cateRow;
				rootNode.Nodes.Add(tnode);				
				foreach(DataSetSR.CategoriesRow subcateRow in DataSettings.Instance.Data.Categories.Select("ParentId = " + cateRow.CategoryId))
				{
					BindSubCategoryTreeNode(tnode,subcateRow);
				}
			}
			this.treeView1.ExpandAll();
			this.treeView1.EndUpdate();
		}
       //递归函数
		private static void BindSubCategoryTreeNode(TreeNode treeNode,DataSetSR.CategoriesRow cateRow)
		{
			CategoryTreeNode tnode = new CategoryTreeNode(cateRow.CategoryName,1,2);
			tnode.Catego