说明:
  我又一数据表格tb,该表格中有两个字段 T1,T2。例如字段数据如下:
  T1   T2
  A1   1
  A2   2
  A2   2
  A2   2
  A3   3
  A3   3
  B1   1
  B2   2
  B3   3
  B3   3
  B4   4
  B4   4
  B5   5
要求:要将该表格数据生成一个树 ,字段T2 中的数据1包含子节点2,2又包含子节点3,3包含子节点4.
形式如下:  1
  |
  ----2
  |
   ----2
       |
       -----3  
 例如上面的形式。
总之,就是按照这样的数据生成一个树,2是1的子节点,3又是2的子节点,4是3的子节点。请问各位 该怎么样生成啊!

解决方案 »

  1.   

    确定树的层数话,就一级级生成就行了,不过你的数据里不能体现parentId的唯一性啊
      

  2.   

    先获取T2为1的节点,遍历添加到treeview,再递归遍历大于当前节点ID如1的数据
    获取数据集,遍历添加到节点的ChildNodes
      

  3.   


    private void Bind()
        {
            DataSet ds = new DataSet();
           
            //获取T2为1数据
            DataTable dtb = ds.Tables[0];
            foreach (DataRowView Row in dtb.DefaultView)
            {
            TreeNode root = new TreeNode();
            root.Value = "";
            root.Text = "";
            root.Expanded = true;
            this.TreeView1.Nodes.Add(root);
            initTree(dtb, "", root);
             }
            this.TreeView1.ExpandAll();
        }
        protected void initTree(DataTable dt, string nFatherid, TreeNode fatherNode)
        {
            DataView dv = new DataView(dt);
            dv.RowFilter = "T2>"+nFatherid+"";
            foreach (DataRowView Row in dv)
            {
                TreeNode node = new TreeNode();
                node.Value =""
                node.Text = "";
                fatherNode.ChildNodes.Add(node);
                initTree(dt, Row["T2"].ToString(), node);        }    }
      

  4.   

    首先 你的数据库 设计就有问题。 一般树形数据库 最少应该是3个字段 比方说    T1 ID PID
    A1 1   0
    A2 2   1
    ID是 本身的id号,PID是父节点的ID