日期:2014-05-17  浏览次数:20448 次

下面问题 用递归怎么做
现有2张表 产品和产品类别(无限极)

类别ID    类别名称      上级ID   类别编码
  cid      cname      pid    cencode
  1        大类一        0      10
  2        大类二        0      11
  3        大类三        0      12
  4        二级类        1      1001
  5        三级类        4      100101
  6        二级类        1      1002
  7        三级类        4      100102

产品表

产品ID    产品名称       产品类别ID      产品编码
  1       产品一           5           10010101
  2       产品二           5           10010102
  3       产品三          4            100101
  4       产品四          4            100102
  5       产品五          7            10010201

问题来了 ,现在我要修改产品类别信息.
比如把7号(三级类)修改为pid为1,包括其类别及其子类编码和相关别的产品编码都要随之改变:
呈现结果为:7号(三级类)编码为1003,产品五编码为100301
若把4号类别(二级类)的pid改为3,那么呈现结果为:5号(三级类)编码为120101 产品编码也随着改变

本人菜鸟 最好写出详细过程,谢谢大侠了






------解决方案--------------------
写一个思路给你,我想简单的思路比完整的代码更有利于你学习:

LoadRoot()
{
    data = select * from table where pid = 0
    foreach (item in data)
    {
        treeview.Nodes.Add(item)
        LoadSubItems(item, item.id)
    }
}
LoadSubItems(Node node, id)
{
    data = select * from table where pid = id
    foreach (item in data)
    {
        node.Nodes.Add(item)
        LoadSubItems(item, item.id)
    }
}
------解决方案--------------------
有一个规定,一