Acc数据库
ID ClassName ParentID

解决方案 »

  1.   

    DataSet ds=new DataSet();
    private void Form1_Load(object sender, System.EventArgs e)
    {
    // 定义数据库连接
    SqlConnection CN = new SqlConnection();
    try 
    {
    //初始化连接字符串
    CN.ConnectionString= 
    "data source=test;initial catalog=Bench;
    persist security info=False;user id=sa;Password=123;";
    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["ClassName"].ToString());
    AddTree(Int32.Parse(Row["ID"].ToString()),Node);    //再次递归

    else 
    {   //添加当前节点的子节点
    TreeNode Node =  pNode.Nodes.Add(Row["ClassName"].ToString());
    AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
    }
    }
    }
      

  2.   

    以上数据库是SQL的,自己改成ACCESS数据库吧!