一个查询条件的问题,请有类试经验的兄弟们来看看!!

lishijie910123 2007-09-21 02:56:24
我做部门查询,由于部门的结构是一个树型的,
把他做成了无限级,我把他用树型显示在dropDownList中,
显示的格式是
|--董事会
|--总经办
|--一分部
|--二分部
|--dfdfd
这样的形式,问题是我选择董事会要查询出他所有子部门的信息,
这个部门表的结构是
ID,部门名称,父部门ID,
请问一下,这个问题如何解决,
并且按部门查询要和其他的查询条件同时一起使用并分页,
现在分页等都没有问题,就是这个按部门查询怎么解决阿!
现谢谢各位啦!!!
...全文
154 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ll124993513 2007-09-24
  • 打赏
  • 举报
回复
学习
purexiafeng 2007-09-24
  • 打赏
  • 举报
回复
.
EricGuzuqiang 2007-09-24
  • 打赏
  • 举报
回复
用递归
private DataTable GetAllChildNodes(int nodeid)
{
DataTable dt = (select * from [tbl] where ID= nodeid);
DataTable dtChild = (select * from [tbl] where parentID = nodeid)
if(dtChild.rows.count=0) //没有子节点
return dt;
else
{
foreach(datarow dr in dtChild.rows)
{
dt.add(dr);//先把dr添加加到dt
GetAllChildNodes(int.parse(dr[0].tostring()));
}
}
}
lonehare 2007-09-24
  • 打赏
  • 举报
回复
但添加部门的时候改动又会很大
---------------------------------------------------
不会很大的,那是一列计算列,不用去管它的,我的系统一直是这样做的,呵呵:)
chuxue1342 2007-09-21
  • 打赏
  • 举报
回复
你绑定时候的datavalue跟datatext不是分开的吗?用datavalue查询不就好了!!
kyouken2007 2007-09-21
  • 打赏
  • 举报
回复
做过类似的。
用递归,可以找到所有的child节点.也可以只找到leaf节点
lishijie910123 2007-09-21
  • 打赏
  • 举报
回复
lonehare(无名)
你说的这种是可以实现,
但添加部门的时候改动又会很大
zhangxiaopin 2007-09-21
  • 打赏
  • 举报
回复
如果你的表建立得有交子关系得话.

用repate建立交子关系邦定到select中.
lonehare 2007-09-21
  • 打赏
  • 举报
回复
一般这种成树的数据,在数据库设计时往往会加一个用于快速搜索的字段。
比如说简单一点的设一个顶层菜单的ID 如加一个“顶级部门的ID”

复杂一点的设一个以某种逻辑构成的字段,如“董事会”的id是0101,“总经办”的id是0102,那么搜索用的字段值可以设成0101_0102,“一分部”就是0101_0102_xxxx 这样查询的时候一条like语句就可以把子节点全部筛选出来了,用DataView处理一下就成树了。

这样可提高数据查询的速度,不然就只能用游标或一条条Sql语句来递归了。
lishijie910123 2007-09-21
  • 打赏
  • 举报
回复
一楼的说一下,
具体怎么操作啊
  • 打赏
  • 举报
回复
学习..
hellunter 2007-09-21
  • 打赏
  • 举报
回复
可以用树形节点来处理这个问题,个人认为是最好的处理方法
shadow841112 2007-09-21
  • 打赏
  • 举报
回复
是要选择一个父类别,然后将所有子类别遍历一边,全部查询是吗?
可以使用递归.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧