假设我下拉菜单有如下选项
     TName      , TId ,TPId   
----------------------------
----无           
----电脑数码    ,  1  ,  0
------电脑      ,  2  ,  1
--------硬件    ,  3  ,  2
----------主板  ,  4  ,  3
----相机        ,  5  ,  1
------佳能      ,  6  ,  5
-----------------------------
我现在主要做个批量删除选项,主要问题是这样的:
比如我现在批量删除了“电脑”和“硬件”两个选项,“主板”这个选项并不会跟着被删掉,只是“主板”的父级变成了“电脑数码”。
请问我SQL语句怎么写,或者C#代码改怎么写,麻烦各位朋友支招,谢谢了!

解决方案 »

  1.   

    //传入要删除的id 和他的父Id
    public void Delelte(int tid,int pid)
    {
      //根据tid 删除要删除的东西
      //更新 父  id 为  tid  的 数据的 pid 为 传入的pid
    }
      

  2.   

    无限级分类这样设计:
    一级:A分类 代码 0001, B分类 代码 0002,C分类 代码  0003二级:
    B分类下的 代码00010001, B分类00020001 , 00020002, 00020003
      

  3.   

    每删除一个节点,让该节点的子级的父级ID等于该节点的父级ID
      

  4.   

    递归删除相关数据
    根据TPId   查询子节点
    或解发器