TreeView树形控件递归绑定数据库里的数据

来源:互联网 发布:淘宝vip会员卡图片 编辑:程序博客网 时间:2024/05/01 23:24

TreeView树形控件递归绑定数据库里的数据。

第一步:建立sqlserver2005数据库表数据city,字段名分别为Id,Name,Pid

 

第二步:建立Form窗体后,拖TreeView控件后,填写后台代码

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace treeView{    public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();            BindTree("0");        }        #region 绑定父节点(第一级)        private void BindTree(string pid)        {            DataSet ds = GetData(pid);            if (ds.Tables[0].Rows.Count > 0)            {                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)                {                    TreeNode node = new TreeNode();                    node.Text = ds.Tables[0].Rows[i]["Name"].ToString();                    node.Tag = ds.Tables[0].Rows[i]["ID"].ToString();                    this.treeView1.Nodes.Add(node);                    BindNode(node);                }            }        }        #endregion        #region 绑定子节点        private void BindNode(TreeNode nd)        {            DataSet ds = GetData(Convert.ToString(nd.Tag));            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)            {                TreeNode node = new TreeNode();                node.Text = ds.Tables[0].Rows[i]["Name"].ToString();                node.Tag = ds.Tables[0].Rows[i]["ID"].ToString();                nd.Nodes.Add(node);                BindNode(node);            }        }        #endregion        #region 将父级下的子级查询出来,并返回一张虚拟表        private DataSet GetData(string pid)        {            string connstr = "server=.;uid=sa;pwd=sa;database=test;";            SqlConnection con = new SqlConnection(connstr);            con.Open();            SqlDataAdapter da = new SqlDataAdapter("select * from city where Pid=" + pid, con);            DataSet ds = new DataSet();            da.Fill(ds);            return ds;        }        #endregion    }}

 

OK,完成!此代码如果用在Asp.Net窗体中,node.tag要改为node.value获取节点值,其它代码不变,直接Copy可以运行!