日期:2014-05-17  浏览次数:20464 次

在C#或vb.net中,怎么递归调用一个存储过程(存储过程退回上级ID)
数据表结构如下:

会员ID  上一级ID     会员金额
1        0          100
2        1          50
3        2          20



--存储过程大致如下:
ALTER PROCEDURE [dbo].[SP_USERS]
@会员id int
AS
SELECT convert(varchar(10),上一级ID) + '|' + convert(varchar(10),会员金额) FROM TB WHERE 会员ID=@会员id


问题:

我在程序中想现实:

exec SP_USERS @会员id= 上级ID


在C#或VB.NET程序中,怎么循环执行这个存储过程,上级返回0才退出这个循环。

------解决方案--------------------
调用存储过程你会吧
private int GetParentID(int id)
{
    int pid=调用存储过程函数(id);
    if(pid==0)
       return 0;
    else
       return GetParentID(pid);
}

private int 调用存储过程函数(int id)
{
    //这里调用存储过程,返回id的上一ID
}