treeView与数据库绑定,DataTable的某一列作为根节点,但是,这一列中有重复的数据。
如何让重复的数据只生成一个根节点,并且让重复数据对应的其它数据都作为这个节点的子节点?

解决方案 »

  1.   

    在你取数据的时候group by一下将没有重复数据的datatable绑定
      

  2.   

    select 子节点 from 表名 where 根节点=(select 根节点 from 表名 where 根节点ID=根节点ID)
      

  3.   

    用hastable来处理,去掉重复的,至于里面的子节点,你也可以在这个方法里面做处理,那个不用说了 吧
     public void SearchTree(TreeNodeCollection p_TreeNodes, Hashtable p_Table)
            {
                Hashtable _HashTable = p_Table;
                if (_HashTable == null) _HashTable = new Hashtable();
                for (int i = 0; i != p_TreeNodes.Count; i++)
                {
                    if (!_HashTable.ContainsKey(p_TreeNodes[i].Text))
                    {
                        _HashTable.Add(p_TreeNodes[i].Text, null);
                       // SearchTree(p_TreeNodes[i].Nodes, _HashTable);
                    }
                    else
                    {
                        p_TreeNodes.RemoveAt(i);
                        i--;
                    }
                }        } 
      

  4.   

    有没有操作DataTable的方法啊?因为毕竟重复数据所对应的内容是要作为子节点的