using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace treeview
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        DataSet ds = new DataSet();
        private void Form1_Load(object sender, System.EventArgs e)
        {            // 定义数据库连接
            SqlConnection CN = new SqlConnection();
            try
            {
                //初始化连接字符串
                CN.ConnectionString = "Data Source=localhost;uid=sa;pwd=;database=changzhen";                CN.Open();
                //添加命令,从数据库中得到数据
                SqlCommand sqlCmd = new SqlCommand();
                sqlCmd.Connection = CN;
                sqlCmd.CommandText = "select * from tbTree";
                sqlCmd.CommandType = CommandType.Text;
                SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
                adp.Fill(ds);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                CN.Close();
            }
            //调用递归函数,完成树形结构的生成
            AddTree(0, (TreeNode)null);
        }        // 递归添加树的节点
        public void AddTree(int ParentID, TreeNode pNode)
        {            DataView dvTree = new DataView(ds.Tables[0]);
            //过滤ParentID,得到当前的所有子节点
            dvTree.RowFilter = "[PARENTID] = " + ParentID;
            foreach (DataRowView Row in dvTree)
            {
                if (pNode == null)
                {    //'?添加根节点
                    TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
                    AddTree(Int32.Parse(Row["ID"].ToString()), Node);    //再次递归
                }
                else
                {   //添加当前节点的子节点
                    TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
                    AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
                }
            }
        }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {        }
    }
}
以上代码编译都没有出错,但就是在treeview窗体里面没有数据显示,数据库里是有数据的啊,是数据库连接不对吗?请指教