帮看个递归函数错误!

Sakeyi 2010-04-08 04:12:40
public void GetDepartment(string strUserName, ref System.Text.StringBuilder SB)
{
AdministratorSQL AS = new AdministratorSQL();
DataTable newDT = AS.SelectAllFromManageDepartment(strUserName);
for (int i = 0; i < newDT.Rows.Count; i++)
{
SB.Append("'" + newDT.Rows[i]["ManageDepartment"].ToString().Trim() + "',");
GetDepartment(newDT.Rows[i]["UserName"].ToString().Trim(), ref SB);
}
}

现在一运行就死,各位帮看下哪里错了呢?
下面这样也是死的!

public void GetDepartment(string strUserName, ref System.Text.StringBuilder SB)
{
ArrayList AL = new ArrayList();
AdministratorSQL AS = new AdministratorSQL();
DataTable newDT = AS.SelectAllFromManageDepartment(strUserName);
for (int i = 0; i < newDT.Rows.Count; i++)
{
SB.Append("'" + newDT.Rows[i]["ManageDepartment"].ToString().Trim() + "',");
AL.Add(newDT.Rows[i]["UserName"]);
}
newDT = null;
for (int i = 0; i < AL.Count; i++)
{
GetDepartment(AL[i].ToString(), ref SB);
}
}
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sakeyi 2010-04-08
  • 打赏
  • 举报
回复
递归能解一些问题,问题搞定了,分还是要散的,多谢各位!
fuda_1985 2010-04-08
  • 打赏
  • 举报
回复
递归是以空间换取时间的效率,你这方法里面有循环,空间和时间都没减少,想想怎么改进下吧。。
flyerwing 2010-04-08
  • 打赏
  • 举报
回复
do(i)
{
if(i==0)
return 1;
else
do(--i);
}

fuda_1985 2010-04-08
  • 打赏
  • 举报
回复
三楼给出思路了,你得给出个条件跳出来。。
liuh6 2010-04-08
  • 打赏
  • 举报
回复
这个罗辑不对吧..在For里那得弄到什么时候是头..这样程序肯定死了.
hujinn 2010-04-08
  • 打赏
  • 举报
回复
死循环 递归不应该在for循环里 i应当做为递归的参数

public void GetDepartment(string strUserName, ref System.Text.StringBuilder SB,int i)
{
AdministratorSQL AS = new AdministratorSQL();
DataTable newDT = AS.SelectAllFromManageDepartment(strUserName);
i++;
if(i < newDT.Rows.Count)
{
SB.Append("'" + newDT.Rows[i]["ManageDepartment"].ToString().Trim() + "',");
GetDepartment(newDT.Rows[i]["UserName"].ToString().Trim(), ref SB,i);
}
}

这样就应该没问题了
Sakeyi 2010-04-08
  • 打赏
  • 举报
回复
现在是无限递归了,求一高手帮改下,多谢!
Aricc 2010-04-08
  • 打赏
  • 举报
回复
注意检查递归出口

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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