小编Ami*_*thi的帖子

存储过程返回许多记录,但datareader只能看到一个

我创建了一个SQL Server存储过程,我在其中使用游标,并创建了一个ASP.NET方法来执行该过程.我使用的是SqlDataReaderwhile(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)

c# asp.net sql-server-2008

1
推荐指数
1
解决办法
4382
查看次数

标签 统计

asp.net ×1

c# ×1

sql-server-2008 ×1