我创建了一个SQL Server存储过程,我在其中使用游标,并创建了一个ASP.NET方法来执行该过程.我使用的是SqlDataReader和while(reader.Read())读值.问题是存储过程中的游标返回许多行,但该方法仅读取第一个记录.有人可以帮忙吗?
存储过程:
create procedure [dbo].[GetMenusUserGroupCanView]
(
@UserGroupID int
,@LanguageID int
) as begin
declare @MenuID int
declare @Title varchar(255)
declare db_cursor cursor for
(
select MenuID
from TrioGate.dbo.Sys_UserGroupMenus
where UserGroupID=@UserGroupID and ViewFlag='true'
)
open db_cursor
fetch next from db_cursor into @MenuID
while @@fetch_status = 0 begin
select
Sys_Menus.MenuID
,Sys_Menus.ParentMenuID
,Sys_Menus.DescriptionLabelID
,Sys_Menus.TitleLabelID
,Sys_Menus.TooltipLabelID
,Sys_Menus.[Icon]
,Sys_Menus.[MenuName]
,Sys_Menus.[MenuTypeID] as MenuType
,[dbo].[Get_ParentMenu_Name](Sys_Menus.ParentMenuID) as ParentMenuName
,[dbo].[Get_Label_Description](Sys_Menus.TitleLabelID,1) as Title
,[dbo].[Get_Label_Description](Sys_Menus.TooltipLabelID,1) as Tooltip
,[dbo].[Get_Label_Description](Sys_Menus.DescriptionLabelID,1) as [Description]
,Sys_Menus.[MainTableName] as [Table]
,Sys_Menus.[Seq],Sys_Menus.[MenuPath],Sys_Menus.ActivateLog,Sys_Menus.MenuID
from Sys_Menus …Run Code Online (Sandbox Code Playgroud)