| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:这个遍历问题我不会!
取消只看楼主 加入收藏
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
 问题点数:0 回复次数:8 
这个遍历问题我不会!

dept_ID 部门ID号 唯一标识
gradeID 部门级别 1代表一级部门,2代表二级部门...
deptNA 部门名称 部门名称
homedeptID 上级部门ID号 标识所归属部门

dept_ID gradeID deptNA homedeptID
2 1 董事会 1
3 1 顶级部门 2
4 2 市场部 2
5 2 技术部 2
6 2 办公室 2
7 3 技术1部 5
8 3 技术2部 5
9 3 技术3部 5
10 3 市场1部 4
11 3 市场2部 4
..............
假设我的“技术1部”下面还有下设机构,而且下设机构下还有多少“小部门”都不确定。
有什么办法?可以让我把上层机构一删除,下面的子部全部删除吗??
如“我把技术部删除,通过SQL语句也可把技术1.2.3部,及下面多少不确定的部门,全部删除吗?”
怎么样用程序可以解决这个问题,谢谢啦!

搜索更多相关主题的帖子: 技术部 标识 市场部 董事会 
2006-08-02 09:43
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
dept_ID gradeID deptNA homedeptID
2 1 董事会 1
3 1 顶级部门 2
4 2 市场部 2
5 2 技术部 2
6 2 办公室 2
7 3 技术1部 5
8 3 技术2部 5
9 3 技术3部 5
10 3 市场1部 4
11 3 市场2部 4
..............
我的第一个和第四个有关系,第四个的代码说明它的上级部门.只有这一张表.
你看见我的5了吗?关系就是这,应该怎么做呀?能给一点代码看看吗?
谢谢,请高手指点!

让我们风风火火的过一生,别平平淡淡过一年。
2006-08-03 08:56
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
delete from Test where Test.dept_ID = 5
CREATE TRIGGER trig1
on Test
FOR DELETE
AS
delete from Test2 where homedeptID.NO=5

你这样太固定了吧,要是我"技术1部.技术2部.技术3部."下面还有下级部门的话,那样可以你的这种方法,是不是可能就行了?

让我们风风火火的过一生,别平平淡淡过一年。
2006-08-03 17:34
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
delete from Test where Test.dept_ID = 5
CREATE TRIGGER trig1
on Test
FOR DELETE
AS
delete from Test2 where homedeptID.NO=5
要是这个5能变成活的,那就好啦,谢谢版主的回答
可以不可以用程序来控制的吗?
能写一点原代码,那就更好啦,谢谢,版主的回答.

让我们风风火火的过一生,别平平淡淡过一年。
2006-08-03 17:41
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 

版主,你错了,我不是计算机专业的,
我C#,和ASP.NET全是自学的,数据结构我没有学习过,至于SQL原理,也是我自己学习的,也没有什么造诣,所以才天天来论坛学习,看别人写的,自己再捉摸,全靠论坛的兄弟姐妹们,我的编程才上路了,
你说的那悠然懂的不是太好,一个兄弟给我了一点参考的东西,可是我不知道行否?
CREATE PROCEDURE USP_CatalogDeleteChild
(
@catalogid nvarchar(50)
)
AS
SET NOCOUNT ON

DECLARE @childCatalogId nvarchar(50)
DECLARE @loop int
DECLARE @totalrow int

DELETE FROM cms_catalog WHERE [id] = @catalogid
BEGIN
----------递归,使用临时表
SELECT[id],identity(int) AS i INTO #tmp FROM cms_catalog WHERE parentid = @catalogid
SET @totalrow = @@rowcount
SET @loop =1

WHILE(@loop <= @totalrow)
begin
SELECT @childCatalogId = [id] FROM #tmp WHERE i = @loop
SET @loop = @loop+1
EXEC USP_CatalogDeleteChild @childCatalogId
end
END
GO
可是我本来想用程序来解决的,你看看,再给一点建议.谢谢版主的回答.


让我们风风火火的过一生,别平平淡淡过一年。
2006-08-04 07:51
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 

这个我明白,可是学习编程,怕难会行吗?总得有第一次,谢谢你的提示.以后,我们常来这个版里,向你学习数据结构.


让我们风风火火的过一生,别平平淡淡过一年。
2006-08-04 09:07
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
我明白啦,那我的这个问题应该如何解决呢?用程序感觉真的很难解决啦??

让我们风风火火的过一生,别平平淡淡过一年。
2006-08-04 10:17
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
可是的下级部门下还有下级部门,我写出的只是树型的开始,下面还有无限多个呢?
要是只有这个二三级部门的话,而且还真的很固定的话,我早就做到删除啦.可是现在下面却是无限的
才是我没有办法啦,所以我才想起数据结构里有这个树的遍历,才把这个帖子发到这里.
版主,你能代我想想吗??谢谢

让我们风风火火的过一生,别平平淡淡过一年。
2006-08-04 11:54
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 

谢谢,版主


让我们风风火火的过一生,别平平淡淡过一年。
2006-08-04 13:24
快速回复:这个遍历问题我不会!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035116 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved