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 的结果集。
希望各位大虾能说下这是什么情况吗?有没处理办法呢?
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帮顶第二个结果集
C# code
GridView.DataSource = ds.Tables[1] // 帮顶你的第二个结果集
作者: chuanzhang5687 发布时间: 2011-12-08
把存储过程改一下,不用插入临时表,如下
SQL code
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28