推广 热搜: 劳务  海南  2024  合同  江苏  云南  劳务系统  2023  劳务派遣管理软件  劳务派遣管理系统 

TreeView递归删除子节点

   2024-06-12 170
核心提示:p有这样一个需求,单击删除TreeView中某个选中的节点时,要求把选中的节点本身与选中节点的子节点(直接子节点和孙子节点)同时
<p>有这样一个需求,单击删除TreeView中某个选中的节点时,要求把选中的节点本身与选中节点的子节点(直接子节点和孙子节点)同时也删除掉。首先想到的是递归实现。可是数据库递归。尼玛。不会啊啊啊~~ 下面附上自己的解决方法,有更好的,烦请以评论方式提供。现假设删除我的文档子节点。那么最后的结果应该只剩下Mid为0和14的两条记录。附上我的解决方法。createprocusp_digui@parentidnvarchar(50)asbegindeclare@selfidnvarchar(50)set@selfid=@parentiddeclare@preDelTbltable(delidnvarchar(50))declare@tbltable(tempidnvarchar(50))insertinto@tblvalues(@parentid)declare@countintset@count=0--中转临时表declare@tempTbltable(tidnvarchar(50))while(1=1)begin--查询传递的一组parendId的直接子元素个数,为0则直接跳出select@count=count(*)fromtblTestwhereParentIdin(selecttempidfrom@tbl)if(@count=0)beginbreakendelsebegin--清空中专临时表数据delete@tempTbl--把parendId的直接子元素插入到待删除表中insertinto@preDelTblselectmidfromtblTestwhereParentIdin(selecttempidfrom@tbl)--保存本次的直接子元素到临时表,提供给下一次循环使用insertinto@tempTblselectmidfromtblTestwhereParentIdin(selecttempidfrom@tbl)delete@tblinsertinto@tblselecttidfrom@tempTblendend--selectdelidfrom@preDelTblunionselect@selfiddeletefromtblTestwhereMidin(selectdelidfrom@preDelTblunionselect@selfid)end</p>
 
标签: 劳务软件
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备18079127号  |  粤ICP备18079127号