+ -
当前位置:首页 → 问答吧 → SQL Server 存储过程 返回结果集问题

SQL Server 存储过程 返回结果集问题

时间:2011-12-08

来源:互联网

存储过程如下
CREATE PROCEDURE [dbo].[P_GetRecordInformationCountData]
@startIndex int,
@endIndex int,
@pageSize int,
@strWhere nvarchar(500)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

  DECLARE @LowerBand int,@UpperBand int,@sql nvarchar(1000)
  set @LowerBand=(@startIndex-1)*@pageSize
  set @UpperBand=@endIndex*@pageSize+1
  select *,ROW_NUMBER() over (order by SystemDebug_RecordInformation_ID) as RowNumber into #tempRecordInformationData from SystemDebug_RecordInformation
  if @strWhere!=''
  set @sql=N'select * from #tempRecordInformationData where RowNumber>'+convert(nvarchar,@LowerBand)+N' and RowNumber<'+convert(nvarchar,@UpperBand)+N' and '+@strWhere 
  else
  set @sql=N'select * from #tempRecordInformationData where RowNumber>'+convert(nvarchar,@LowerBand)+N' and RowNumber<'+convert(nvarchar,@UpperBand)
  exec(@sql)
END


上述存储过程若在SQLServer 管理器中,执行则能够返回指定的结果集(最后exec的结果集),但是在C#中调用时却返回的是第一个select 的结果集。
希望各位大虾能说下这是什么情况吗?有没处理办法呢?

作者: alongchengtian0   发布时间: 2011-12-08

不会吧。

作者: liangCK   发布时间: 2011-12-08

if @strWhere!=''
那说明你的这个参数没有传递正确

作者: HEROWANG   发布时间: 2011-12-08

C#中你得指定table

比如说 GridView帮顶第二个结果集
C# code
GridView.DataSource = ds.Tables[1] // 帮顶你的第二个结果集

作者: chuanzhang5687   发布时间: 2011-12-08

把存储过程改一下,不用插入临时表,如下
SQL code

SET @LowerBand = (@startIndex -1) * @pageSize
SET @UpperBand = @endIndex * @pageSize + 1
;WITH cte AS(
SELECT *,
       RowNumber=ROW_NUMBER() OVER(ORDER BY SystemDebug_RecordInformation_ID)
FROM   SystemDebug_RecordInformation
)

IF @strWhere != ''
    SET @sql = N'select * from cte where RowNumber>' + 
        CONVERT(NVARCHAR, @LowerBand) + N' and RowNumber<' + CONVERT(NVARCHAR, @UpperBand)
        + N' and ' + @strWhere
ELSE
    SET @sql = N'select * from cte where RowNumber>' + 
        CONVERT(NVARCHAR, @LowerBand) + N' and RowNumber<' + CONVERT(NVARCHAR, @UpperBand)


作者: koumingjie   发布时间: 2011-12-08

SQL代码没有什么问题 检查程序的问题。

作者: fredrickhu   发布时间: 2011-12-08