| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 521 人关注过本帖
标题:谁能给一个存储过程分页的例子
只看楼主 加入收藏
本刚
Rank: 1
等 级:新手上路
威 望:1
帖 子:192
专家分:0
注 册:2005-12-3
收藏
 问题点数:0 回复次数:6 
谁能给一个存储过程分页的例子
谁能给一个存储过程分页的例子!!!
最好是简单的.
在线等
谢谢
搜索更多相关主题的帖子: 例子 
2007-02-02 21:57
fququ
Rank: 1
等 级:新手上路
威 望:1
帖 子:181
专家分:0
注 册:2004-5-30
收藏
得分:0 
----------------------------------------
--动态从表中返回某些行数据...
----------------------------------------
create proc RunSelectByPageSize
@tablename nvarchar(30) , --表名
@pagesize int, --每页显示的行数
@pageindex int, --当前页数从0开始
@orderby nvarchar(50), --排序的列
@params nvarchar(300), --将要显示的列,用逗号隔开
@pagecount int out,
@where nvarchar(100) = '1=1', --where条件字符串
@order nvarchar(10) =' asc ' --排序方式

as
begin
declare @Sqlstr nvarchar(500)
declare @Rowcount int
set @Sqlstr=N'select @Rowcount= count(*) from '+@tablename +' where '+@where
exec sp_executesql @Sqlstr,N'@Rowcount int output',@Rowcount output
if @Rowcount=0 --如果没有找到对应条件则退出记录集为0;
begin
return
end
set @pagecount=Ceiling(@Rowcount*10*0.1/@pagesize)
if @pageindex<1 --如果是第一页的话...
set @Sqlstr = 'select top '+cast(@pagesize as varchar(4))+' '+ @params +' from '+@tablename+' where '+@where+ ' order by '+@orderby+' '+@order
else if @pageindex =ceiling(@Rowcount/@pagesize)
set @Sqlstr='select * from (select top '+cast((@Rowcount-@pagesize*(@pageindex)) as varchar(4))+ ' '+ @params +' from '+
@tablename+' where '+@where +' order by +'+@orderby+' desc) temptable order by '+@orderby+' '+@order
else if @pageindex >ceiling(@Rowcount/@pagesize)
begin
select @Rowcount
return
end
else
set @Sqlstr='select '+@params + ' from (select top '+cast(@pagesize as varchar(4)) +' * from '+
'( select top '+cast(@pagesize*(@pageindex+1) as nvarchar(4))+' ' +@params +' from '+@tablename +' where '+@where
+' order by '+ @orderby+ ' asc ) temptable order by '+@orderby+ ' desc ) temptable2 order by '+ @orderby+' '+@order
exec(@Sqlstr)
end


并不是最好的算法.如果你有所改进请告诉我
另外,我发现我写的这个过程如果倒序可能存在问题.谁有空,帮忙整理.谢先

[此贴子已经被作者于2007-2-4 11:37:27编辑过]


2007-02-03 09:49
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 

够强悍!

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-02-03 10:56
本刚
Rank: 1
等 级:新手上路
威 望:1
帖 子:192
专家分:0
注 册:2005-12-3
收藏
得分:0 
谢谢,我先研究一下.

我的网站 http://6asp. 欢迎指教。
2007-02-03 16:47
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
前面有人发过的吧?

飘过~~
2007-02-03 22:22
dawei322
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-10-25
收藏
得分:0 

有VB.NET 的版块吧?

2007-02-04 10:33
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
以下是引用dawei322在2007-2-4 10:33:04的发言:

有VB.NET 的版块吧?

自己"翻译"一下就行了啊.


飘过~~
2007-02-04 13:56
快速回复:谁能给一个存储过程分页的例子
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027576 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved