我做了一个在TreeView中的货品分类的一块,就是在数据库中建立一个关于货品分类的表 从数据库中读取相应的信息 在TreeView中动态添加节点(注:节点节点的层次是不确定的需要从数据库中读取)  希望各位高人给予 数据库的设计  以及相关代码  小弟在此谢过。 (在线等)

解决方案 »

  1.   

    http://www.microsoft.com/china/community/Column/16.mspx
    应该就是你想要的!
      

  2.   

    不过好像使vb。net的不过主要就是个思路,应该能看懂。
      

  3.   

    我刚开始 也是怎么想的  但是有一个问题~  就是我在数据库中读取所有的接点的信息  其中也包括接点的层次  但是在读取中 我需要给没一个接点都生成一个实例  如果是我知道 现在有多少个层次
    那么我就知道该生成多少个实例(做多少个for循环)但是我不知道有多少层   也就是我不知道该用多少个循环 以下是一个我已经知道有的多少个层次的 代码如下。为了方便期间 我做了一个可以得到dataTable的方法  (getTable(SQL语句)  返回查询结果的表)
    表的结构如下表名terpsplb
    ----------------------------------------------------
    类别id |  类别名称  |  上级节点名称  |   节点级别  |
    ----------------------------------------------------
    节点级别  比如 根节点的级别为0  根节点的下级节点的级别为1         System.Windows.Forms.TreeNode node=new TreeNode("根节点");         string SQL="select * from terpsplb where 节点级别=1";
             System.Data.DataTable dt1=getdata.getTable(SQL);
             
    System.Windows.Forms.TreeNode nd1; for(int i=0;i<dt1.Rows.Count;i++)
    {
    nd1=new TreeNode(dt1.Rows[i]["节点名称"].ToString());
    string SQL1="select * from terpsplb where 上级节点名称='"+ dt1.Rows[i]["节点名称"].ToString()+"'";
    System.Data.DataTable dt2=getdata.getTable(SQL1);
    TreeNode nd2;
    for(int j=0;j<dt2.Rows.Count;j++)
    {
    nd2=new TreeNode(dt2.Rows[j]["节点名称"].ToString());
    nd1.Nodes.Add(nd2);
    }
    node.Nodes.Add(nd1);



    }
    treeView1.Nodes.Add(node);
      

  4.   

    luias  看了 有点思路了   等  我试着做下
      

  5.   

    luias  你给的那个我看了  是不行的   那上面说的是  知道有多少个节点层次  但是我是不知道有多少层次的  况且他是多个表   而我这里只有一个表啊
      

  6.   

    做层次,你只要把某节点作为查询条件得到的结果,加到该节点的nodes
                if (treeView1.SelectedNode != null)
                {
                    //用选择个节点做父项查询。得到的结果
                    TreeNode MyNode = treeView1.SelectedNode;
                    //把结果循环入该node
                    MyNode.Nodes.Add("");
                }
            If Not TreeView1.SelectedNode Is Nothing Then
                Dim mynode As TreeNode = TreeView1.SelectedNode
                '把结果循环入该node
                MyNode.Nodes.Add("");
            End If
      

  7.   

    楼上的 朋友  你说的这种情况  我知道  但是这种是 在知道有多少层节点的情况下做的
    但是我现在不知道有多少层节点  就不知道有多少For循环啊
      

  8.   

    http://community.csdn.net/Expert/topic/3856/3856050.xml?temp=3.268069E-02