介绍一下和AspNetPager结合的不错的分页方案
2009-08-11 12:13
281 查看
阅读全文:http://www.sufeinet.com/thread-2112-1-1.html
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[Psp_SetPagination]
(
@vc_Table varchar(50),--表名
@vc_SqlWhere varchar(1000)='',--条件
@vc_SqlOrder varchar(1000)='',--排序规则
@vc_SqlFile varchar(1000)='*',--选取字段
@vc_Key varchar(50)='',--关键字
@vc_FieldType varchar(50)='',--字段类型
@i_PageSize int=1,--分页大小
@i_PageIndex int=1,--页面索引
@bt_Count bit --在统计吗?
)
As
set nocount on
Declare @vc_Sql varchar(5000)
if @bt_Count=1
BEGIN
set @vc_Sql='select count(*) from '+@vc_Table+' '+@vc_SqlWhere
END
ELSE
BEGIN
set @vc_Sql='Declare @indexTable Table(Id decimal identity(1,1),Temp_Key '+@vc_FieldType+ ')'+char(13)
set @vc_Sql=@vc_Sql+
'Declare @PageLowerBound int'+char(13)
set @vc_Sql=@vc_Sql+
'Declare @PageUpperBound int'+char(13)
set @vc_Sql=@vc_Sql+
'set @PageLowerBound='+cast((@i_PageIndex-1)*@i_PageSize as varchar(8))+char(13)
set @vc_Sql=@vc_Sql+
'set @PageUpperBound=@PageLowerBound+'+cast(@i_PageSize as varchar(8))+char(13)
set @vc_Sql=@vc_Sql+
'set rowcount @PageUpperBound'+char(13)
set @vc_Sql=@vc_Sql+
'Insert into @indexTable(Temp_Key)'+
'Select '+@vc_Key+' from '+@vc_Table+' '+@vc_SqlWhere+' '+@vc_SqlOrder+char(13)
if @vc_SqlWhere<>''
begin
set @vc_SqlWhere=@vc_SqlWhere+' and '+@vc_Key+'=t.Temp_Key and t.Id>@PageLowerBound and t.Id<=@PageUpperBound'
end
else
begin
set @vc_SqlWhere='Where '+@vc_Key+'=t.Temp_Key and t.Id>@PageLowerBound and t.Id<=@PageUpperBound'
end
set @vc_Sql=@vc_Sql+
'Select '+@vc_SqlFile+' from '+@vc_Table+',@indexTable t '+@vc_SqlWhere+' Order by t.Id'
END
EXEC(@vc_Sql)
看完之后有什么想法, 是不是很好用啊,你可以把它当成一个共用的过程也可以在前台写好访问的方法,我喜欢在前台写好方法,这样的话,它就和表数据库无关了, 只要我做项目,把这个存储过程在数据库里一运行,在前台用写好的方法,调用就行了, 没有任何分别,和表和数据库都没有关系,更好的是他是在Sql2000的基础上写的,所以,不管是在Sql2000还是Sql05里都是可以的,程序是一个类也不用变,呵呵这样是不是很好啊, 下面我说一下怎么写类,
有两个类一个是 AspNetPagerInfo.cs 这个类是一个Model类主要是属性,用来传参数用的,
关键是AspNetPager.cs这个类,这个类才是我们要用的, 下面是代码分别看一下吧
阅读全文:http://www.sufeinet.com/thread-2112-1-1.html
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[Psp_SetPagination]
(
@vc_Table varchar(50),--表名
@vc_SqlWhere varchar(1000)='',--条件
@vc_SqlOrder varchar(1000)='',--排序规则
@vc_SqlFile varchar(1000)='*',--选取字段
@vc_Key varchar(50)='',--关键字
@vc_FieldType varchar(50)='',--字段类型
@i_PageSize int=1,--分页大小
@i_PageIndex int=1,--页面索引
@bt_Count bit --在统计吗?
)
As
set nocount on
Declare @vc_Sql varchar(5000)
if @bt_Count=1
BEGIN
set @vc_Sql='select count(*) from '+@vc_Table+' '+@vc_SqlWhere
END
ELSE
BEGIN
set @vc_Sql='Declare @indexTable Table(Id decimal identity(1,1),Temp_Key '+@vc_FieldType+ ')'+char(13)
set @vc_Sql=@vc_Sql+
'Declare @PageLowerBound int'+char(13)
set @vc_Sql=@vc_Sql+
'Declare @PageUpperBound int'+char(13)
set @vc_Sql=@vc_Sql+
'set @PageLowerBound='+cast((@i_PageIndex-1)*@i_PageSize as varchar(8))+char(13)
set @vc_Sql=@vc_Sql+
'set @PageUpperBound=@PageLowerBound+'+cast(@i_PageSize as varchar(8))+char(13)
set @vc_Sql=@vc_Sql+
'set rowcount @PageUpperBound'+char(13)
set @vc_Sql=@vc_Sql+
'Insert into @indexTable(Temp_Key)'+
'Select '+@vc_Key+' from '+@vc_Table+' '+@vc_SqlWhere+' '+@vc_SqlOrder+char(13)
if @vc_SqlWhere<>''
begin
set @vc_SqlWhere=@vc_SqlWhere+' and '+@vc_Key+'=t.Temp_Key and t.Id>@PageLowerBound and t.Id<=@PageUpperBound'
end
else
begin
set @vc_SqlWhere='Where '+@vc_Key+'=t.Temp_Key and t.Id>@PageLowerBound and t.Id<=@PageUpperBound'
end
set @vc_Sql=@vc_Sql+
'Select '+@vc_SqlFile+' from '+@vc_Table+',@indexTable t '+@vc_SqlWhere+' Order by t.Id'
END
EXEC(@vc_Sql)
看完之后有什么想法, 是不是很好用啊,你可以把它当成一个共用的过程也可以在前台写好访问的方法,我喜欢在前台写好方法,这样的话,它就和表数据库无关了, 只要我做项目,把这个存储过程在数据库里一运行,在前台用写好的方法,调用就行了, 没有任何分别,和表和数据库都没有关系,更好的是他是在Sql2000的基础上写的,所以,不管是在Sql2000还是Sql05里都是可以的,程序是一个类也不用变,呵呵这样是不是很好啊, 下面我说一下怎么写类,
有两个类一个是 AspNetPagerInfo.cs 这个类是一个Model类主要是属性,用来传参数用的,
关键是AspNetPager.cs这个类,这个类才是我们要用的, 下面是代码分别看一下吧
阅读全文:http://www.sufeinet.com/thread-2112-1-1.html
相关文章推荐
- 介绍一下和AspNetPager结合的不错的分页方案 -----------转载
- 介绍一下和AspNetPager结合的不错的分页方案
- 说一下mysql,oracle等常见数据库的分页实现方案?
- URLRewrite伪静态与AspNetPager分页控件的结合
- PagedDataSource数据绑定控件和AspNetPager分页控件结合使用列表分页
- AspNetPager 分页控件介绍
- 使用 AspNetPager 结合 Linq 实现分页
- URLRewrite伪静态与AspNetPager分页控件的结合
- GridView结合ASPNETPager的分页代码
- asp.net结合aspnetpager使用SQL2005的存储过程分页(转)
- ASP.NET调用Oracle分页存储过程并结合ASPnetpager分页控件 实现分页功能
- asp.net 分页sql语句(结合aspnetpager)
- URLRewrite伪静态与AspNetPager分页控件的结合
- asp.net结合aspnetpager用sql语句分页
- asp.net 分页sql语句(结合aspnetpager)
- 结合aspnetpager控件和三层的sql语句的分页
- AspNetPager与MSSQL海量分页存储过程结合
- URLRewrite伪静态与AspNetPager分页控件的结合
- asp.net 分页sql语句(结合aspnetpager)
- Oracle常见SQL分页实现方案介绍