C#递归增加、删除树节点(TreeView)
2012-12-24 22:29
429 查看
使用存储过程找出所有的子节点(用于删除节点)
create PROCEDURE UserClassDeleteAllNodeUsedProcedure
@ClassID nchar(10)
AS
declare @id int
set @id=@ClassID;
with RootNodeCTE(id,ParentID)
as
(
Select ClassID,ParentID from Tb_UserClass
where ParentID in (@id)
Union all
Select Tb_UserClass.ClassID,Tb_UserClass.ParentID
From RootNodeCTE
inner join Tb_UserClass on RootNodeCTE.id=Tb_UserClass.ParentID
)
delete from Tb_UserClass
Where ClassID In
(
Select id from RootNodeCTE
union all
Select @classid
)
递归源码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
namespace Comm
{
public class TreeView
{
QueryLibrary.QuerySql query;
//执行sql命令
SqlCommand cmd;
public TreeView()
{
query = new QueryLibrary.QuerySql();
cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
}
/// <summary>
/// 节点初始化
/// </summary>
/// <param name="TNode"></param>
public void UserClassGetNodeInit(TreeNode TNode)
{
DataSet ds = new DataSet();
cmd.CommandText = "UserClassGet";
cmd.Parameters.Clear();
cmd.Parameters.Add("@ParentID", SqlDbType.NChar, 10).Value = TNode.Tag;
try
{
ds=query.GetDataSet(cmd);
}
catch{}
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode TN_Parent = new TreeNode();
TreeNode TN_child = new TreeNode();
TN_Parent = TNode;
TN_child.Tag = dr["ClassID"].ToString();
TN_child.Text = dr["ClassName"].ToString();
TNode.Nodes.Add(TN_child);
UserClassGetNodeInit(TN_child);
}
}
/// <summary>
/// 查找所选节点
/// </summary>
/// <param name="TNode"></param>
/// <returns></returns>
public DataSet UserClassGet(TreeNode TNode)
{
DataSet ds = new DataSet();
cmd.CommandText = "UserClassGet";
cmd.Parameters.Clear();
cmd.Parameters.Add("@ParentID", SqlDbType.NChar, 10).Value = TNode.Tag;
try
{
ds = query.GetDataSet(cmd);
}
catch { }
return ds;
}
/// <summary>
/// 节点增加
/// </summary>
/// <param name="ClassID"></param>
/// <param name="ClassName"></param>
/// <param name="ParentID"></param>
/// <returns></returns>
public bool UserClassADD(string ClassID,string ClassName,string ParentID)
{
cmd.CommandText = "UserClassADD";
cmd.Parameters.Clear();
cmd.Parameters.Add("@ClassID", SqlDbType.NChar, 10).Value = ClassID.Trim();
cmd.Parameters.Add("@ClassName", SqlDbType.NChar, 10).Value = ClassName.Trim();
cmd.Parameters.Add("@ParentID", SqlDbType.NChar, 10).Value = ParentID.Trim();
try
{
int i = query.IntExecuteNonQuery(cmd);
if (i > 0)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
public int UserClassGetMaxClassID()
{
相关文章推荐
- C#递归增加、删除树节点(TreeView)(转载于互联网)
- C#递归遍历TreeView节点
- c#对xml多属性节点的增加,删除,修改操作源码
- C# treeview右键添加,删除,重名字树节点
- C# WinForm TreeView 递归选择父节点和子节点
- Bootstrap treeview增加或者删除节点
- Asp.net中C#增加删除查找与修改xml文件元素节点
- c#对xml多属性节点的增加,删除,修改操作源码
- treeview学习2之体验报告:绑定数据(递归算法),增加节点,删除节点
- b/s中treeview的递归删除节点
- C#Winform TreeView节点选择影响其父子节点选中状态(递归)
- c#对xml多属性节点的增加,删除,修改操作源码
- C# TreeView的用法(递归加载节点内容)
- C# 递归TreeView 与根据选择的节点获得整个节点路径
- C# treeview右键添加,删除,重名字树节点
- 二叉搜索树非递归方式删除节点
- .net C# Treeview的Node拖动,Node节点上下移动
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....
- C# 遍历TreeView所有节点
- JS-案例-增加和删除节点