递归小应用

本文详细阐述了如何使用SQL查询获取数据源,并通过数据视图(DataView)进行筛选,进而实现树形数据的绑定过程。通过递归函数,确保数据能够正确地在树形控件中展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
private void BindTree()
        {
            string sql = "select ID,[name],byte from Sut";
            DataTable dt = SQLHelper.ExecuteDataTable(sql);//获取数据源
            int s = dt.Rows.Count;//
            DataView dv = new DataView(dt);
            dv.RowFilter = "byte=0";
            foreach (DataRowView drv in dv)
            {
                TreeNode node = new TreeNode();
                node.Text = drv["Name"].ToString();//显示的文本
                node.Tag = drv["ID"].ToString();//不显示的 文本 值
                treeView1.Nodes.Add(node);//添加到根节点
                AddReplies(dt, node);//递归函数 
            }
        }
        protected void AddReplies(DataTable dt, TreeNode node)
        {
            DataView dv = new DataView(dt);
            dv.RowFilter = "byte='" + node.Tag + "'";//过滤 node。Value 为上级的treeNode 值
            foreach (DataRowView row in dv)
            {
                TreeNode replyNode = new TreeNode();//新建一个节点
                replyNode.Text = row["Name"].ToString();//显示的文本
                replyNode.Tag = row["ID"].ToString();//不显示的 文本 值
                node.Nodes.Add(replyNode);//添加到子节点
                AddReplies(dt, replyNode);//继续递归函数
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值