如某产品结构如下: 
  服装--男装--西服
                    --衫衣
                          --白衫衣
                          --...           --女装--套裙
                     --披肩
                     --..
                        --...
 饮料--
         --可乐
         --水
            --纯净水
            --...
         -- 酒
            --白酒
 电器--
         --...目的:将上述结构显示在TREEVIEW控件中,并且能让用户自由的添加,删除,更改结点的结构,更改结构后保存至数据库中.
问题2:要实现上述功能,数据库中表应该如何设计?这是否属递归算法?能否给出一个较为详细的设计思路?
我的可用分不多了,信誉分也不知怎么回事少了.
请大家多帮忙吧

解决方案 »

  1.   

    Dim CN As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=Report;User Id=sa;Password=sa;"
        CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic
        Rs.MoveFirst
        Do While Not Rs.EOF
            Select Case Len(Trim(Rs.Fields("lno")))
                Case 3
                    TreeView1.Nodes.Add , , "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
                Case 5
                    TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 3), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
                Case 7
                    TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 5), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
           
            End Select
            Rs.MoveNext
        Loop
        Rs.Close
        CN.Close
        For I = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(I).Expanded = True
        Next
      

  2.   

    一般这样设计表的结构
    序号  父节点id  层次  节点值
    id  parentid  level  interid
    1 0     1     1
    2 1     2     1.2
    3 1     2     1.3
    4 2     3     1.2.4
    5 4     4     1.2.4.5
    6 5     5     1.2.4.5.6
    参考:
    http://expert.csdn.net/Expert/topic/2052/2052501.xml?temp=8.172244E-02
      

  3.   

    循环记录,添加到tree就可    Rs.CursorLocation = adUseClient
        Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic    Rs.MoveFirst
        Do While Not Rs.EOF          TreeView1.Nodes.Add "key" & Trim(Rs.Fields("parentid")), tvwChild, "key" & Trim(Rs.Fields("id")), Rs.Fields("interid")        Rs.MoveNext
        Loop
      

  4.   

    没看太懂第一个.
    我想第二和第三个应该是答案吧.
    表结构中:level and interid 起什么作用?尤其是level字段?
    能不能再详细解释些.我很笨.呵呵.