存储过程分页怎么取到存储过程的返回值?

c02645 2006-02-15 03:30:54
我的存储过程是这样的!
CREATE PROCEDURE proTest
@strSql as nvarchar(2000) = null, --要查询语句如 Select top 30 * from orders
@startRow as int = null, --从其开始的从零开始的记录号
@maxRows as int = null --要检索的最大记录数
AS
DECLARE @stopRow as int
set @stopRow = @startRow + @maxRows

set @strSql = N' Select top ' + CAST(@StopRow as nvarchar(9)) + '*, IDENTITY(int,1,1) AS TempIDKey_Num '
+ ' INTO #New_Table '
+ ' FROM( ' + @strSql + ') A '
+ ' Select * From #New_Table Where TempIDKey_Num>=' + CAST(@StartRow as nvarchar(9))
+ ' DROP TABLE #New_Table '
execute sp_executesql @strSql
GO

怎么取到他的返回记录数、当前页码
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chentianfen 2006-02-15
  • 打赏
  • 举报
回复
可以获取不过好象要设置得比较多(具体查MSDN),用个
select 返回值不就行了,比较简单
c02645 2006-02-15
  • 打赏
  • 举报
回复
据说是可以返回值的!但我不明白返回代码在哪里!然后返回的变量又是什么?在.cs里面又是怎么样接获返回值呢?
c02645 2006-02-15
  • 打赏
  • 举报
回复
CREATE PROCEDURE dbo.spAll_ReturnRows
(
@SQL nVARCHAR(4000),
@Page int,
@RecsPerPage int,
@ID VARCHAR(255),
@Sort VARCHAR(255)
)
AS

DECLARE @Str nVARCHAR(4000)

SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN
(SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort

PRINT @Str

EXEC sp_ExecuteSql @Str
GO

这个呢?又是怎么取得值?
lovvver 2006-02-15
  • 打赏
  • 举报
回复
感觉你的存储过程处理不太合理。
你的存储过程参数可以为:页码,每页记录数,检索条件,返回DataSet。
分页存储过程的分页部分,可以在程序里实现。
c02645 2006-02-15
  • 打赏
  • 举报
回复
还有呢?
在.cs里面怎么接获返回值?
huangkc 2006-02-15
  • 打赏
  • 举报
回复
加个输出参数就可以了
@xx int out

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧