根据一个节点查询出它所有的子节点和父节点

问题描述

用户权限问题有这样一个表MenuIDMenuNameParentMenuID1a2b12c14d25e46f5在权限表里只存了MenuID比如说张三对菜单4有操作权限,那么我就得查出和4有关的父节点以及4下边的所有子节点请高手帮忙!

解决方案

解决方案二:
sql还是C#sql用CTEC#递归
解决方案三:
递归几层啊?2是4的父,1是2的父,1取不取?5是4的子,6是5的子,6取不取如果memu表的内容不太多就读出来放到DataTable并常驻内存就行了,通过DataTable的select()函数递归
解决方案四:
递归呗。。。
解决方案五:
使用递归,对要查找的节点进行迭代!
解决方案六:
publicpartialclass_Default:System.Web.UI.Page{List<test>list;protectedvoidPage_Load(objectsender,EventArgse){list=newList<test>();GetDataTable();GetParent(4);GetSon(4);foreach(testtinlist.Distinct(newtestEquality()))Response.Write(t.MenuID+"=="+t.MenuName+"<br/>");}publicvoidGetParent(intMenuID){DataRow[]row=(ViewState["Table"]asDataTable).Select("MenuID="+MenuID);foreach(DataRowrinrow){list.Add(newtest(){MenuID=Convert.ToInt32(r["MenuID"]),MenuName=r["MenuName"].ToString()});if(!r.IsNull("ParentMenuID"))GetParent(Convert.ToInt32(r["ParentMenuID"]));}}publicvoidGetSon(intParentMenuID){DataRow[]row=(ViewState["Table"]asDataTable).Select("ParentMenuID="+ParentMenuID);foreach(DataRowrinrow){list.Add(newtest(){MenuID=Convert.ToInt32(r["MenuID"]),MenuName=r["MenuName"].ToString()});if(!r.IsNull("MenuID"))GetSon(Convert.ToInt32(r["MenuID"]));}}publicvoidGetDataTable(){DataTabledt=newDataTable();using(SqlConnectionconn=newSqlConnection()){conn.ConnectionString=ConfigurationManager.ConnectionStrings["testConnection"].ConnectionString;SqlDataAdapterda=newSqlDataAdapter("selectMenuID,MenuName,ParentMenuIDfromtest",conn);da.Fill(dt);}ViewState["Table"]=dt;}}publicclasstestEquality:IEqualityComparer<test>{#regionIEqualityComparer<test>成员publicboolEquals(testx,testy){if(x.MenuID==y.MenuID&&x.MenuName==y.MenuName)returntrue;elsereturnfalse;}publicintGetHashCode(testobj){returnobj.MenuID+obj.MenuName.GetHashCode();}#endregion}publicclasstest{publicintMenuID{get;set;}publicstringMenuName{get;set;}publicintParentMenuID{get;set;}}

时间: 2025-01-02 21:43:48

根据一个节点查询出它所有的子节点和父节点的相关文章

extjs怎么计算tree的父节点下面的所有子节点id总和

问题描述 大家好..我现在遇到一个问题就是在extjs中的tree问题..我是想实现判断树的父节点是否被选中,如果选中就累加父节点下面的所有子节点id的总和具体是这样子的:比如父节点A,下面有A1,A2,A3,如果我选中了A,那么如果A1,A2,A3都被选中的话,就累加,如果只选中了A2,A3,那么就累加A2和A3,请问下这个要怎么实现.谢谢了.. 解决方案 解决方案二:这个问题木有难度-去googleExt.ux.TreeCheckNodeUI我给你找了一个,http://blog.csdn.

WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the selected TreeViewItem. ButSelectedItemChanged is called twice. This is due to stealing focus from the main window, which is screwing something up. Wha

mysql-求一个Mysql语句 查询出当前周的数据按照天分组

问题描述 求一个Mysql语句 查询出当前周的数据按照天分组 SELECT DATE_FORMAT(uploadTime_beg%Y-%m-%d"") as time SUM(field01) as sumStatus1 SUM(field02) as sumStatus2 SUM(field03) as sumStatus3 SUM(field04) as sumStatus4 SUM(field05) as sumStatus5 FROM health_realdata WHERE

hibernate可不可以根据一个实体类查询出数据库中是否存在该记录

问题描述 hibernate可不可以根据一个实体类查询出数据库中是否存在该记录 需要判断一条记录是否已经在数据库中是否存在重复记录,用hql的话传入的参数会比较多

ajax-jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id

问题描述 jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id,在通过ajax查询返回相对的改变jsp页面的文本框的值 请问 当我按那个查询按钮之后,弹出那个查询窗口,选中相应的值之后,按确定之后会关闭查询窗口(会返回选中的用户id)然后通过ajax查询相应的值,同时把值填到一个text文本域内,希望高手可以帮我解决一下这个怎么做? 解决方案 思路基本是正确的,你的问题只是在于不自信.多鼓捣鼓捣,效果就出来

拟定一个场景,需要做多条件查询,假设先选择一个条件,查询出内容后

问题描述 拟定一个场景,需要做多条件查询,假设先选择一个条件,查询出内容后 再选择一个条件,如何保证第二次查询是在第一次查询的基础上.用的ss2h框架 解决方案 不明白,你说的这个 可以在第二次查询的时候把第一次查询的条件参数带上,联查就可以额

从一个数据库表查询出结果集,然后把结果集存到另一个数据库,求方案

问题描述 从一个数据库表查询出结果集(不需要页面展示),然后把结果集存到另一个数据库,数据量可能很大,有什么好方案? 解决方案 解决方案二:你可以创建一个试图来保存你查询出来的结果集,自然也可以把你视图里面的结果集写入到其他的数据库解决方案三:可以将查询的结果导出,然后再导入另一个

只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名_数据库其它

昨天去面试时遇到一个这样的问题: 有一张成绩表,只有两个字段,姓名和成绩.怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名? 一时间我也想不出具体实现,我就提了两种思路:一种是通过join关联一个查询出他排名的sql语句:一种是通过group by来实现. 回答得连自己都觉得有点心虚.请问大家如何实现呢? 假设:表名字为Course,两个字段分别为name和score 实现语句: SELECT 学生,成绩, (SELECT COUNT(*) FROM 表 WHERE a.成绩<=成

Struts2自定义标签2自定义一个按班级id查询出该班级下的学生,存放进值栈,并遍历出来。

Struts2自定义标签的流程概念: (1)需要两个类:标签类(继承相应的tag类),基本类(继承Component).标签类专门负责从客户端取得用户输入的一些属性,这个普通的jsp自定义标签一样,取出来以后,需要把取出的属性值赋给基本类.从而可以看到基本类里面的属性也跟tag里面差不多. (2)tag类里面,需要定义你客户端传来的属性.私有化.并相应的set get.  必须的两个方法是public Component getBean(ValueStack stack,HttpServletR