当前位置: 代码迷 >> Sql Server >> 大神老是很多的。关于一个资源库管理工具中,在数据库中提取出来的东西,像windows中文件夹一样的格式显示。下面会详细说。感谢大家
  详细解决方案

大神老是很多的。关于一个资源库管理工具中,在数据库中提取出来的东西,像windows中文件夹一样的格式显示。下面会详细说。感谢大家

热度:10   发布时间:2016-04-24 09:52:33.0
大神总是很多的。关于一个资源库管理工具中,在数据库中提取出来的东西,像windows中文件夹一样的格式显示。下面会详细说。感谢大家。
本帖最后由 liubj123bj 于 2014-09-20 14:23:16 编辑
菜鸟刚工作。最近在做一个项目。资源库工具的更新,也就是这个资源库跟数据库相连接,不过在这个资源库里面操作很方便。目前要实现这样一个功能。比如说,如图   里面没有后缀的都是文件夹。因为放入数据库中的文件夹的话,里面的东西,都是全部罗列出来。而不是像windows资源管理器那样的方式。目前我们的资源库中也是像资源库中那样。我现在想实现的功能就是,让放入资源库中的windows文件,以windows资源管理器那样。点击A文件夹只,显示A文件夹里面的东西。也就是B文件夹和C文件夹和x.txt. 然后点击B文件夹显示,l.html和xz,kml 这样子。 目前想到的方案是,自己弄一个表。

就是这样的一个表,把他们的信息存储到这里面,然后点某一个文件夹,遍历一下这个表,把这个文件夹下的东西显示出来。
那个我想问一下各位大大,有没有什么sql语句可以直接实现这个功能,而不用这样麻烦。或者是用一种别的方式来实现。=。= 万分感谢!
------解决思路----------------------
declare @ClickID int =0;
select @ClickID=CAST( RAND()*4 as int)+1;
--drop table #TestData;
with TestData(id,pid,name,type,date) as (
select cast(1 as int),cast(0 as int),'A','Dir',getdate() union all
select 2,1,'B','Dir',getdate() union all
select 3,1,'C','Dir',getdate() union all
select 4,3,'D','Dir',getdate() union all
select 5,1,'X.TXT','File',getdate() union all
select 6,2,'L.HTML','File',getdate() union all
select 7,2,'XZ.HTML','File',getdate() union all
select 8,3,'CX.TXT','File',getdate() union all
select 9,4,'HELLO.CPP','File',getdate() 
)
select * into #TestData from TestData;
select * from #TestData where id=@ClickID;--显示点击的文件夹
with cte as (
select *,1 lvl
from #TestData where id=@ClickID
union all
select t.*,cte.lvl+1
from #TestData t 
join cte on cte.id=t.pid
)
select * from cte where lvl=2--显示所点文件夹内的内容


------解决思路----------------------
标准的BOM或组织架构图效果
  相关解决方案