日期:2014-05-18  浏览次数:20416 次

200分求一套完整的无限级分类的程序!
要有数据库文件!还有cs文件!要求绝对开源!要附带注释!要求在删除大类别时相应的小类别也要被删除!最好是存储过程版的!谢谢!~功能一经测试通过就给分!~200分!~我的邮箱是:200831856@qq.com           或者:daichao911@163.com
代码就发在这两个E_Mail里面!~然后在这里回个话!我好给分!~发代码的时候请把你的CSDN的用户名附上!~谢谢!~期待中……

------解决方案--------------------
http://community.csdn.net/IndexPage/SmartQuestion.aspx#noprivate
------解决方案--------------------
其实没有那么严重,这里有个不限级的,无刷新的树,给你参考一下

http://www.cnblogs.com/zm235/archive/2007/06/01/512635.html
------解决方案--------------------
所有大类小类都放在一个表中,后面跟个属于什么大类
------解决方案--------------------
http://community.csdn.net/IndexPage/SmartQuestion.aspx#noprivate
呵呵 顶
------解决方案--------------------
接个分
------解决方案--------------------
就是如

id, names, c_id
1 游戏 0
2 音乐 0
3 网络游戏 1
4 新闻 0
5 传奇世界 3


这样子的结构吗~~ 然后循环读取出数据

不过我感觉 适宜小量数据(5千条以下) 如果在大点的数据 一般不设计成 "无限级 "
个人认为 好的数据库 设计是 避免出现 "无限分类 "的,以前对这个特别 "钟爱 ",但是后来发现数据量大到万级的话,你会头晕的,不利于维护.
------解决方案--------------------
像这样的,一般都要用递归来做,递归的思想比较难写下来,给段代码给你参考一下吧,我写的,用的方法比较笨,路过的高手不要取笑我:D

#region 获取产品类别
/// <summary>
/// 获取用于下拉列表的产品类别
/// &#13;格式:[0]类别名,[1]序号,[2]描述;[3]类别名,[4]序号,[5]描述;……
/// &#13;字符格式未处理
/// </summary>
/// <param name= "pcid "> 父类别序号,为空字符串时表示返回所有的类别 </param>
/// <param name= "list "> 需要构造的数组,可为null值 </param>
/// <returns> </returns>
public ArrayList GetAllProColumnList(string pcid,ArrayList list)
{
StringBuilder sql = new StringBuilder();
sql.Append( "select * from [tbProductColumn] ");//这里这个表名因为是access的数据库,习惯性的加了[],以下同。
if(pcid != " ")
{
sql.Append( " where [ParentPCid]= " + pcid);
}
else
{
sql.Append( " where [ParentPCid]=-1 ");
}
sql.Append( " order by [OrderID] DESC,[PCid] DESC ");
DataSet ds = DbTools.Query(sql.ToString());//你自己写个数据层,基本上就是根据传入的sql语句执行获取DataSet
if(ds.Tables[0].Rows.Count > 0)
{
if(list == null)
{
list = new ArrayList();
}
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
list.Add(ds.Tables[0].Rows[i][ "ClassName "].ToString());
list.Add(ds.Tables[0].Rows[i][ "PCid "].ToString());
list.Add(ds.Tables[0].Rows[i][ "Description "].ToString());
this.GetAllProColumnList(ds.Tables[0].Rows[i][ "PCid "].ToString(),list);//这句就是递归开始了。
}
return list;
}
return null;
}
#endregion
------解决方案--------------------
哦对了,我的数据库设计与你不太一样,我的ParentPCid相当于你的Grade字段,但是我是用数字的类型,只保存这个栏目的父栏目id
------解决方案--------------------
up
------解决方案--------------------
这个我有哇!高级tree.........
------解决方案--------------------
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">