加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ASP.NET:递归操作时报错:无法创建新的堆栈防护页面[解决]

(2012-06-25 21:51:32)
标签:

递归

treeview

动态添加节点

堆栈防护页面

杂谈

分类: C#.NET
今天在尝试使用递归法动态添加节点来实现树形结构动态生成的时候报错,如下:
http://s7/middle/4c8f1ac2gc34c4aabbd86&690
第一印象就认为是溢出,可能是null的问题,但找来找去就是找不到问题所在,再想想既然是堆栈方面的,自己用的又是递归,就把问题指向了递归法,这个问题相信很多人都会忽视(或者说不易察觉):数据库字段的选择上可能会陷入逻辑死循环
通过设置递归方法处断点,可以看到所传参数一直是同一个,那么这个问题就很好解决了,直接查看取值和参数值,如下:
http://s11/bmiddle/4c8f1ac2gc34c5980365a&690
下面是数据库表内容:
NodeId DisplayName NodeURL DisplayOrder ParentNodeId
101 人事管理 NULL 1 0
102 日程管理 NULL 2 0
101001 机构信息 NULL 1 101
101002 部门信息 NULL 2 101
102001 我的日程 NULL 3 102
102002 我的便签 NULL 4 102
一开始错误的把节点ID搞错了,一直查找的是parentNodeId,这会陷入死循环,参数一直是0,直到报错为止,更改为NodeId后一切正常,效果如下:
http://s15/middle/4c8f1ac2gc34c6399552e&690


希望对碰到相同问题的朋友有所启发,往数据库字段取值上搜寻问题所在。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有