读书人

未处理的“System.StackOverflowExcep

发布时间: 2012-06-06 16:44:11 作者: rapoo

未处理的“System.StackOverflowException”类型的异常出现在 mscorlib.dll 中。能改下代码可以实现 递归,,将数据库中数据依次绑定到treeview1中吗???


TreeNodeCollection是treeview1的结点集合,dataset 中数据的字段,TreeNodeKind是T或F

public void DBToTreeNode(TreeNodeCollection TNColl, string ZhiDuAN, string TreeNodeKind)
{
for (int i = 0; i < DT.Rows.Count; i++)
{
bool Bool_UseFlag;
if ( DT. Rows[i]["USE_Flag"].ToString() == "F")
{
Bool_UseFlag = true;

}
else
{
Bool_UseFlag = false;
}
if (DT.Rows[i][ZhiDuAN].ToString().Split('^').Length == 2)
{
if (DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(0).ToString() == TreeNodeKind && DT.Rows[i][ZhiDuAN].ToString().Split('^').Length == 2) ;//控件名称
{
if (!treeView1.Nodes.ContainsKey(DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString()))
{
TNColl.Add(DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString(), DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString());
TNColl[DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString()].ToolTipText = DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(0).ToString();
TNColl[DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString()].Checked = Bool_UseFlag;
DBToTreeNode(TNColl[DT.Rows[i][ZhiDuAN].ToString().Split('^').GetValue(1).ToString//递归调用()].Nodes, "Sub1_Menu", "一级子菜单");
}
}
}
}
}



红色的那行出现未处理的“System.StackOverflowException”类型的异常出现在 mscorlib.dll 中。

[解决办法]
太牛B的写法了,乱
[解决办法]
要么你的逻辑出错了,要么是真的堆栈太过深了而出错了。且你的方法好像没有退出堆栈的路径。

读书人网 >C#

热点推荐