(C#)实现无限级分类树

来源:互联网 发布:2016年户外广告数据 编辑:程序博客网 时间:2024/05/04 17:32

开发工具以及开发语言:Visual Studio.net 2005 C#

数据库:SQL Server 2000

数据库名:IELKQ 密码为空

向里面添加如下数据(注,其中的部门名称是我乱来的)

解释:DEPT_ID是部门号,NAME_DEP是部门名称,ID_DEPT是所属的部门号,其意义是,如:DEPT_ID 为000000 NAME_DEP为北京检查院,ID_DEPT为000000表示这是根节点,也就是一级节点,又如:DEPT_ID为000004,NAME_DEP为成都检查院,ID_DEPT为000004也是指这是根节点,也是一级节点,又如DEPT_ID为000002,NAME_DEP为检查办,ID_DEPT为000000,表示这个部门是北京检查院的下级部门,也就是二级节点,DEPT_ID为000003这个部门是DEPT_ID为000001的子部门,是它的更下一级节点,

 

需要的控件不多,一个TreeView控件,其dock属性设置为fill,然后一个Button,其text属性设置为"分类"

 

大概思路是这样的:现把一级节点(根节点)找出来,也就是DEPT_ID和ID_DEPT相同的记录,然后再用DEPT_ID去找和ID_DEPT相同的记录,那么这些记录就是二级节点,在AddNote(...)函数中把这些二级节点的记录记录在一张新表中(这就是为什么要不断创建新表的原因),并用foreach循环添加这些二级节点,循环中使用递归,这样就不断的添加三级节点,四季节点等等节点这样功能就实现了