这样写,可以获取到parentId的所有下级吗
StringBuilder sbItem = new StringBuilder();
private void GetChild(int parentId)
{
        
            DataTable dt = bll.GetEmployee(parentId);
            foreach (DataRow dr in dt.Rows)
            {
                sbItem.Append(dr["id"].ToString()).Append("',");
                GetChild(dr["id"].ToString());   //这里递归获取
            }
        
}
这个方法怎么执行,我是担心这样,如我想取到1的所有下级
1的直接下级有  5 , 9  ,12
5的下级有  97 ,108, 97没有下级,是不是这个方法就执行结束了,108,9,12是不是执行不到了

解决方案 »

  1.   

    http://www.cnblogs.com/stulife/archive/2011/03/03/1969760.html
      

  2.   


    97没有下级
    private void GetChild(int parentId)
    {
        
      DataTable dt = bll.GetEmployee(parentId);
      foreach (DataRow dr in dt.Rows)
      {
      sbItem.Append(dr["id"].ToString()).Append("',");
      GetChild(dr["id"].ToString()); //这里递归获取
      }
        
    }
    dt.Rows.Count就等于0,
    foreach (DataRow dr in dt.Rows)  {
      sbItem.Append(dr["id"].ToString()).Append("',");
      GetChild(dr["id"].ToString()); //这里递归获取
      }
    就不会执行,为什么还会执行下去呢