未处理的“System.StackOverflowException”类型的异常出现在System.Data.dll 中.

lx198871 2011-04-21 09:10:34
未处理的“System.StackOverflowException”类型的异常出现在System.Data.dll 中.
相关提示:确保您没有无限循环或无限递归。过多的方法调用通常意味着存在非常深的递归或无限递归。
我的数据库设计简单的时候运行正常,设计复杂后就出现了以上错误
public void AddTree(int ParentID,TreeNode pNode)
{

DataView dvTree = new DataView(ds.Tables[0]);

//过滤ParentID,得到当前的所有子结点
dvTree.RowFilter = "[PARENTID] =" + ParentID; /*********报错是这句**************/ foreach(DataRowView Row in dvTree)
{
if(pNode ==null)
{
//添加根结点
TreeNode Node=treeView1.Nodes.Add(Row["Name"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归

}
else
{
//添加当前结点的子节点
TreeNode Node = pNode.Nodes.Add(Row["Name"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
}
...全文
324 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtj2832 2011-04-21
  • 打赏
  • 举报
回复
这里有递归,可能是出现无限制的递归导致的,函数调用层次过多导致栈溢出。检查是否有意外的递归调用或函数调用。

如果有问题,请描述出更详细的调用代码,以及数据库相关信息
lx198871 2011-04-21
  • 打赏
  • 举报
回复
当我把ID设置的较为简单。如1,2,3,4.。。。。时显示正确,但是变成以上后就不太正确,parentID是该节点对应的父节点的Id
lx198871 2011-04-21
  • 打赏
  • 举报
回复
上面是我的数据库部分内容ID、 Name 、 parentID

110,534

社区成员

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

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

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