access数据库删除无限级分类语句怎么写?

qq417349857 2010-10-15 10:40:12
请教一下access数据库删除无限级分类语句怎么写?
数据库里就三列 id,classname,pid
已知父ID=44
怎么删除他的子类和子类的子类?
...全文
146 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
williemii 2010-10-15
  • 打赏
  • 举报
回复
只要三个层次么?
种草德鲁伊 2010-10-15
  • 打赏
  • 举报
回复


var list = new List<Category>()
{
new Category(1, 0) ,
new Category(2, 0) ,
new Category(3, 1) ,
new Category(4, 1) ,
new Category(5, 3) ,
new Category(6, 3)
};

var children = GetChildren(list, 1);
string sql = "delete from [table] where id in (" + String.Join(", ", children.Select( c => c.Id.ToString()).ToArray()) + ")";

Console.WriteLine(sql);

lbjlbjabc01 2010-10-15
  • 打赏
  • 举报
回复
来学习下~~
yan267 2010-10-15
  • 打赏
  • 举报
回复


string allid = "";//定义全局变量保存ID
public void getCalculatorQTY(int ID)
{

if (allid == "")
{
allid = ID.ToString();
}
else
{
allid = allid + "," + ID.ToString();
}
DataTable dt = new DataTable();
string sql = "select id from table where pid=" + ID + "";
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
getCalculatorQTY(dt.Rows[i]["id"].ToString());
}


}

}




大致改了点,思路应该是这样的,你自己试试,看看递归是不是死循环。如果是可能有点错误。

最后allid就是全部的pid了。

种草德鲁伊 2010-10-15
  • 打赏
  • 举报
回复


public class Category
{
public int Id { get; set; }

public string Name { get; set; }

public int ParentId { get; set; }
}






public List<Category> GetChildren(List<Category> list, int parentId)
{
var children = new List<Category>();

foreach (var item in list.Where(c => c.ParentId == parentId))
{
children.Add(item);
children.AddRange(GetChildren(list, item.Id));
}
return children;
}

qq417349857 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yan267 的回复:]
引用 8 楼 qq417349857 的回复:
C# code

//是父类
string ids = "";
ids += id + ",";
string ziID = "";

strin……


拿到子id的时候,继续上面的代码如何还有再继续。一直到没有为止,
[/Quote]

我也知道这个思路 就是不知道该怎么往下写了

yan267 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq417349857 的回复:]
C# code

//是父类
string ids = "";
ids += id + ",";
string ziID = "";

strin……
[/Quote]

拿到子id的时候,继续上面的代码如何还有再继续。一直到没有为止,

qq417349857 2010-10-15
  • 打赏
  • 举报
回复
怎么往下写?这样是查询出了一个子ID
qq417349857 2010-10-15
  • 打赏
  • 举报
回复
 
//是父类
string ids = "";
ids += id + ",";
string ziID = "";

string sqqq = "select id from T_ProductClass where pid=" + id;
ziID = eu.AccessSearchValue(sqqq);
yan267 2010-10-15
  • 打赏
  • 举报
回复
递归还是要在程序做的比较好,单用sql写比较麻烦。
qq417349857 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 karascanvas 的回复:]
由程序遍历获取id, sql只管删除就行了。
[/Quote]

循环次数怎么取?
种草德鲁伊 2010-10-15
  • 打赏
  • 举报
回复
由程序遍历获取id, sql只管删除就行了。
qq417349857 2010-10-15
  • 打赏
  • 举报
回复
小弟琢磨了好久了 还是写不出来
yan267 2010-10-15
  • 打赏
  • 举报
回复
都要先递归pid,找出所有关联的pid才能删除到最底层的。

种草德鲁伊 2010-10-15
  • 打赏
  • 举报
回复
递归遍历子分类。
qq417349857 2010-10-15
  • 打赏
  • 举报
回复
别人的项目我接手 不想动别人数据库
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧