关于MFC的CTreeCtrl 递归插入节点,该怎么解决

关于MFC的CTreeCtrl 递归插入节点
本帖最后由 rundll64 于 2014-03-30 20:28:51 编辑
先描述下数据结构
父ID,子ID,用户名
0          0            user
1          0            test
2          0           anmy
3         1            test1
4         2            anmy1

然后根据父ID与子ID关系,最后排列出来的树形结构

树根USER
         +---test
                +----test1
         +---anmy
               +-----anmy1
基本就是这个意思

我现在通过tree控件已经实现了动态生成树的效果,但是由于数据库的内容比较多,而且用户层级也不等,我现在自己写的方法,在1000个用户关系中,处理接近5分钟,简直离谱了

征求下高手大虾们,有什么好的案例,或成型的函数,通过传递参数的方式,实现一次性且时间短的好办法呢?


------解决方案--------------------
我估计你的流程可能是这样做的:
递归第一层:查找数据库,找出级别为最高级的结点的数据,插入到树中。
递归第二层:查找数据库,找出级别为第二级的结点的数据,插入到树中。
递归第三层:查找数据库,找出级别为第三级的结点的数据,插入到树中。
以次类推。。。。直到找完。

那么如果真是这种情况,耗时的问题就很明显了,就在于每次递归的都重新查找数据库导致的。你看看是不是这种情况。
------解决方案--------------------
都说了 如果你子很多的话 就不要一次都生成 用户一次又不会看那么多 你这没图标 如果每项都有图标 更是慢死你
------解决方案--------------------
我说句题外话,你返回xml会更好些。
还有你在生成树的时候,如果数据很大,客户端不可能一次把树全部展开,那样会很慢