数据库是这个public static int getParentId(int 13)//递归到顶级父节点,取的它的id
{
string sql = "select * from column_list where id=" +13;
DataTable dt = DBHelp.GetTable(sql);
int parintid = int.Parse(dt.Rows[0]["cl_parentID"].ToString());
int lanmu_id = int.Parse(dt.Rows[0]["ID"].ToString());
if (parintid > 0)
{
getParentId(parintid);//努力递归中
}
return lanmu_id;
}根据表最后的父节点的值应该是 11 输出还是 13.。看看哪里错了。人比较笨。
{
string sql = "select * from column_list where id=" +13;
DataTable dt = DBHelp.GetTable(sql);
int parintid = int.Parse(dt.Rows[0]["cl_parentID"].ToString());
int lanmu_id = int.Parse(dt.Rows[0]["ID"].ToString());
if (parintid > 0)
{
getParentId(parintid);//努力递归中
}
return lanmu_id;
}根据表最后的父节点的值应该是 11 输出还是 13.。看看哪里错了。人比较笨。
解决方案 »
- asp.net mvc 问题
- asp.net页面在浏览器中无法查看
- asp.net图形编程问题 求高手帮忙 谢谢了
- 使用asp.net web site administration Tool 出错,在线等!!
- 求个简单的样式,懂CSS的进!
- 十万火急,ASP.net的一个问题,请各位大侠看看
- 请问怎末实现单击 LinkButton 弹出一个没有工具栏、地址栏的页面,并向这个页面传递一个变量???????
- 求算法,就是AdRotator控件如何根据权重值随机显示广告,并且概率是根据权重来得,内详
- Asp.Net关于发送手机短信的程序,请进来看看。
- 如何从DataAdapter填充数据到DataSet,并输出数据?请高手指教~~
- MVC扩展控件传参问题
- ActiveX 部件不能创建对象
如果你只需要一个根节点,递归中,应该是return getParentId(parintid);//努力递归中
否则,你白执行了递归,都没return回来啊
我用的是access 递归没用过。。不是很懂。。只知道自己调用自己。。能给个易懂的例子么......
select id from table1
connect by prior parentid = id
start with id = 'xx';如果是DB2、SQL Server:
with pid(id, parentid)
as
(
select id,parentid from table1
union all
select t.id, t.parentid from table1 t, pid vt
where t.parentid = vt.id
)
select id from pid;实在不行,你的用代码查询也是可以的,不过你要return 递归函数,形如:
int GetParent(int id)
{
...
if(...)
{
return GetParent(newid);
}
}
int fun(int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}
public static int getParentId(int parintid)//递归到顶级父节点,取的它的id
{
string sql = "select * from column_list where id=" +parintid ;
DataTable dt = DBHelp.GetTable(sql);
int parintid = int.Parse(dt.Rows[0]["cl_parentID"].ToString());
int lanmu_id = int.Parse(dt.Rows[0]["ID"].ToString());
if (parintid > 0)
{
getParentId(parintid);//努力递归中
}
return lanmu_id;
}这样就应该就行了 返回值就是11了
怎么递归
去掉int
不行啊。断点看了下,,,,,得到值11 return 后,,,,它还继续执行,跳到 if (parintid > 0)
{
getParentId(parintid);//
}
return lanmu_id;
就这里,又执行了几遍。
{
string sql = "select * from column_list where id=" +parintid ;
DataTable dt = DBHelp.GetTable(sql);
int parintid = int.Parse(dt.Rows[0]["cl_parentID"].ToString());
int lanmu_id = int.Parse(dt.Rows[0]["ID"].ToString());
if (parintid > 0)
{
return getParentId(parintid);//努力递归中
}
else
return lanmu_id;
}
哈哈,谢谢楼上。。可以了。不过不是很理解 if 里面为什么要用 return?
int fun(int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}