ddl无限绑定栏目(递归实现)

本文介绍了一种使用C#语言从数据库中递归查询新闻种类及其子类别的方法。通过构建SQL连接并执行查询语句,实现了父类别下所有子类别的获取,并通过递归函数进一步获取每个子类别的子类别,直至没有更多的子类别为止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   数据库中的表NewsKind

NewsKindID int
NewsKindName varchar
ParentID int   

SqlConnection conn = new SqlConnection (System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    conn.Open();
    string sqlstr = "select NewsKindID, NewsKindName,ParentID from NewsKind where ParentID=0 order by NewsKindID asc";
    SqlCommand cmd = new SqlCommand(sqlstr,conn);
    SqlDataReader dr = cmd.ExecuteReader();
    while(dr.Read())
    {
     ddlParentNewsKind.Items.Add(new ListItem(("┣")+dr["NewsKindName"].ToString(),dr["NewsKindID"].ToString()));
     if(dr["NewsKindID"].ToString()!=dr["ParentID"].ToString())
     {
      smallClass(long.Parse(dr["NewsKindID"].ToString()),"┃");
     }
    }

private void smallClass(long classId,string tempStr)
  {
   SqlConnection conn = new SqlConnection (System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
   conn.Open();
   string sqlstr = "select NewsKindID, NewsKindName,ParentID from NewsKind where ParentID="+classId+" order by NewsKindID asc";
   SqlCommand cmd = new SqlCommand(sqlstr,conn);
   SqlDataReader dr = cmd.ExecuteReader();
   while(dr.Read())
   {
    ddlParentNewsKind.Items.Add(new ListItem((tempStr+"┣")+dr["NewsKindName"].ToString(),dr["NewsKindID"].ToString()));
    if(dr["NewsKindID"].ToString()!=dr["ParentID"].ToString())
    {
     tempStr =tempStr +"┃";
     smallClass(long.Parse(dr["NewsKindID"].ToString()),tempStr);
    }
   }
  }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值