查它父级的,父亲路径就行了。因为父亲路径已经包含了他的所有祖先。
老实说,你这个肯定是要定级数的,要不然无法保证完整性。而且字数多的话,后面的路径,恐怕就放不下了。
@forhells: 谢谢 这个办法可行
你可以插入这样的数据 values("笔芯","3(中性笔)","/文具/笔类/中性笔/(/0/1/3/)")
上级层数如果能确定的话 可以写。 如果不能确定只能递归
能确定的只有他的上一级 但上上级 上上上级都需要查出来 就如要往中性笔下插入“笔芯” 能知道是“中性笔"下的” 但是/文具/笔类/都要求查出来再插入
使用递归会比较好点,而且能做到无限的分类
应该是用递归 可小弟我不会 新手 所以来求一方法
递归。每次插入的时候 取父级编号。。1种是在Excel里写好了。。直接导入。。2 种你用Winfrom 里做一个导入工具。。因为商品的无限分类 下面有好多。不可能用一个SQL就把所有的商品一下子给添加完了。。。
void Main() { var query=GetClassID(3); query.ToList().ForEach(q=>Console.WriteLine("{0}\t{1}\t{2}",q.Id,q.Name,q.Parent)); /* Id Name Parent 5 B2 3 8 D1 5 9 D2 5 10 D3 5 */ } public IEnumerable<Tim_LinqTable> GetClassID(int p_id) { var query = from c in this.Tim_LinqTables where c.Parent == p_id select c; return query.ToList().Concat(query.ToList().SelectMany(t => GetClassID(t.Id))); }
实现思想是递归实现