同一表,通过标识区分父节点:表: leasetreeid,leasename,parentnode,parentnode默认值0,

解决方案 »

  1.   

    Populating the TreeView Control from a Database http://www.15seconds.com/issue/030827.htm
    http://www.databasejournal.com/news/article.php/3069351
    http://dotnet.aspx.cc/Exam/t.zip
      

  2.   

    树一次加载完,就用递归来构建。
    如果要点展开才加载下一级,可以用XMLhttp的方式。
      

  3.   

    clsT_BSE_POPEDOM[] objResultArr;
    #region 获取全院的部门填充treeview
    public void m_mthAddDept()
    {
    m_trdept.Nodes.Clear();
    clsT_BSE_POPEDOM objResultArrRoot;//部门数组
    objService.m_lngGetAllSysModule(out objResultArr);
    objService.m_lngGetAllSysModule("is null",out objResultArrRoot);//获取根节点
    for(int i = 0;i<objResultArrRoot.Length;i++)
    {
    System.Windows.Forms.TreeNode rootNode = new System.Windows.Forms.TreeNode(objResultArrRoot[i].m_strNAME_VCHR);
    rootNode.Tag = objResultArrRoot[i];
    m_trdept.Nodes.Add(rootNode); 
    addnode(rootNode);
    }
    }
    #endregion
    #region 递归填充模块treeview
    private void addnode(System.Windows.Forms.TreeNode DeptNode)
    {
    for(int i = 0;i<objResultArr.Length;i++)
    {
    if(objResultArr[i].m_strPARENTID_CHR == ((clsT_BSE_POPEDOM)DeptNode.Tag).m_strPOPEDOMID_CHR)
    {
    System.Windows.Forms.TreeNode childNode = new System.Windows.Forms.TreeNode(objResultArr[i].m_strNAME_VCHR);
    childNode.Tag = objResultArr[i];
    DeptNode.Nodes.Add(childNode);
    addnode(childNode);
    }
    }
    }
    #endregion数据结构中有父ID和子ID和名字行了
      

  4.   

    这方面的例子简直太多了,给你随便找几个
    http://dev.csdn.net/develop/article/65/65166.shtm
      

  5.   

    http://chs.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/winforms/Samples/ControlReference/TreeViewCtl/TreeViewCtl.src