TreeView 绑定数据---递归查询无限极TreeView

用递归查询数据,绑定到TreeView 上,我记的刚出来找工作好像就倒在了这个题下,通过下面的例子,希望对不熟悉用递归绑定TreeView的同行有所帮助,看代码:

 

实现的效果如图:

 

 

 

数据库结构如图:

代码如下:

 /// <summary>
    /// 查询父节点
    /// </summary>
    /// <param name="conn"></param>
    public void selectParent(SqlConnection conn)
    {
        string sql = "select  * from treeInfo  where  pid=0";
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(dt);
       
        for (int i = 0; i < dt.Rows.Count;i++)
        {
            TreeNode tn = new TreeNode();
            tn.Text = dt.Rows[i]["name"].ToString();
            tn.Value = dt.Rows[i]["id"].ToString();
            this.TreeView1.Nodes.Add(tn);
            selectChild(tn);
        }
       
     
    }

    /// <summary>
    /// 递归查询子节点
    /// </summary>
    public void selectChild(TreeNode tnn)
    {
        string sql = "select * from treeInfo where pid="+tnn.Value+"";
        DataTable dt1 = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(dt1);
        for (int i = 0; i < dt1.Rows.Count; i++)
        {
            TreeNode tn = new TreeNode();
            tn.Text = dt1.Rows[i]["name"].ToString();
            tn.Value = dt1.Rows[i]["id"].ToString();
            tnn.ChildNodes.Add(tn);
            selectChild(tn);
        }
     
    }

最后在Load事件里面调用一下selectParent(SqlConnection conn) 这个方法,在传个SqlConnection 的参数就 OK 了!!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值