您的位置:首页 > 其它

递归小应用

2011-11-02 09:07 127 查看
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);//继续递归函数
            }
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: