看不大懂。。 我的树型结构是根据数据库来加载的,要是显示到表格比如datagridview里面不是把数据都读出来就好了吗?SELECT f1.f_id, f1.f_name, f1.fatherID, f2.f_name AS fatherName FROM dbo.folder AS f1 INNER JOIN dbo.folder AS f2 ON f1.fatherID = f2.f_idfolder是文件夹,f_id, f_name, fatherID是表folder的三个字段,另外写了个视图把父结点的名称也加上去了~ 不知道对你有用不?
我的树型结构是根据数据库来加载的,要是显示到表格比如datagridview里面不是把数据都读出来就好了吗?SELECT f1.f_id, f1.f_name, f1.fatherID, f2.f_name AS fatherName
FROM dbo.folder AS f1 INNER JOIN
dbo.folder AS f2 ON f1.fatherID = f2.f_idfolder是文件夹,f_id, f_name, fatherID是表folder的三个字段,另外写了个视图把父结点的名称也加上去了~
不知道对你有用不?
其实本质还是从数据库中去数据出来;
只是不知道如何取!
在数据表中表现为:取某个上级结点为空的结点以及以此结点为父结点的所有字节点;再取所有以子结点为父结点的结点;如何循环下去,直到子结点没有子结点!另外回复9楼:sql语句是不对的!
这样根基点都取不出来!
DataTable dt = DB.GetTable("select * from tablename");DB.cs
public static DataTable GetTable(string sql)
{
//填充dataset
return ds.Tables[0];
}
我已经找到方法了!
公布一下:
类似于下面的表bd_dept
dpid dpname dppid
01 根部门1
0101 部门1 01
010101 部门2 0101
02 根部门2
取出根部门1以及下面的所有子结点!
select * from bd_dept
start with dpid='01'
connect by prior dpid=dppid
这样取出的结果就是前三行!
环境:oracle 9i