未处理的“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的写法了,乱
------解决方案--------------------要么你的逻辑出错了,要么是真的堆栈太过深了而出错了。且你的方法好像没有退出堆栈的路径。