未处理的“System.StackOverflowException”类型的异常出现在System.Data.dll 中.
未处理的“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); //再次递归
}
}
}