TreeView 超级建树问题,请教高手! ( 积分: 150 )

  • 主题发起人 主题发起人 lsx1982
  • 开始时间 开始时间
L

lsx1982

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有个数据库是这样的:
CodeId CodeName
00 aa
01 bb
0001 CC
0002 DD
0003 EE
000101 FF
000102 GG
.....................
0101 HH
01013 II

现在根据CodeID的规律建树,而且不知道CodeId有多少层.
请教高手有没有最简洁,最优化,速度最快的方法!高分请教!不够再家!
 
现在有个数据库是这样的:
CodeId CodeName
00 aa
01 bb
0001 CC
0002 DD
0003 EE
000101 FF
000102 GG
.....................
0101 HH
01013 II

现在根据CodeID的规律建树,而且不知道CodeId有多少层.
请教高手有没有最简洁,最优化,速度最快的方法!高分请教!不够再家!
 
能不能说一下:
就你上面这些数据生成的树是什么样子的?
这样才能去找规律啊!
 
生成的效果是:
-00
-0001
-000101
-01
-0101
-0102
-010201
 
有点难度,不过如果改一下就爽了,把CodeId改成parentid,默认parentid 为0,很多进销存做分类的时候就是这么做的,有现成代码可以用,做递归调用
 
楼上说的没错,把表结构改一下吧,你这样的结构也不便于维护啊,如果要移动一个子结点就难做了。

改一下结构效率更高。
 
有道理,当然如果不需要移动的,那就采用你自己的也可以,另外怕你以后会用到前边的codeid这个编码。
 
结构改一下比较好,如果不改结构,我有个想法不知道如何:
一个长度的变量len,初始值设为2,然后用while循环,查询codeid变量为len的记录,只要不为空,就增加树接点,当次循环结束之前将符合条件的codeid字段值写入一个数组或TStringList中,下次的循环开始时,用like做查询,查找到该接点的child,不过这种方法效率不太高,比较麻烦,建议还是把结构修改一下好了。
 
楼上的说的没错,跟我的想发相同
 
后退
顶部