递归小应用 .

递归加载树形数据
本文介绍了一种使用递归方法从数据库加载树形结构数据并将其绑定到TreeView控件的技术。通过SQL查询获取数据,并利用DataView进行过滤,确保只加载特定层级的数据。这种方法适用于构建具有多层次结构的应用程序。
 
  1. private void BindTree()  
  2.         {  
  3.             string sql = "select ID,[name],byte from Sut";  
  4.             DataTable dt = SQLHelper.ExecuteDataTable(sql);//获取数据源   
  5.             int s = dt.Rows.Count;//   
  6.             DataView dv = new DataView(dt);  
  7.             dv.RowFilter = "byte=0";  
  8.             foreach (DataRowView drv in dv)  
  9.             {  
  10.                 TreeNode node = new TreeNode();  
  11.                 node.Text = drv["Name"].ToString();//显示的文本   
  12.                 node.Tag = drv["ID"].ToString();//不显示的 文本 值   
  13.                 treeView1.Nodes.Add(node);//添加到根节点   
  14.                 AddReplies(dt, node);//递归函数    
  15.             }  
  16.         }  
  17.         protected void AddReplies(DataTable dt, TreeNode node)  
  18.         {  
  19.             DataView dv = new DataView(dt);  
  20.             dv.RowFilter = "byte='" + node.Tag + "'";//过滤 node。Value 为上级的treeNode 值   
  21.             foreach (DataRowView row in dv)  
  22.             {  
  23.                 TreeNode replyNode = new TreeNode();//新建一个节点   
  24.                 replyNode.Text = row["Name"].ToString();//显示的文本   
  25.                 replyNode.Tag = row["ID"].ToString();//不显示的 文本 值   
  26.                 node.Nodes.Add(replyNode);//添加到子节点   
  27.                 AddReplies(dt, replyNode);//继续递归函数   
  28.             }  
  29.         }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值