100分求一个AspNetPager分页存储过程实例

zky0901 2010-04-14 10:24:08
数据库记录多了,速度慢了,现在想使用存储过程,在网上查了几天也没找到适合的,我急坏了,数据库是sql2000,也可以是2005,结合AspNetPager,请哪位搞的朋友提供个实例或者能使用的教程,一定加100分,我的邮箱是dianjinzhi@163.com,谢谢啦
...全文
523 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_dawen 2010-05-31
  • 打赏
  • 举报
回复
3楼的就好使 又简单
zky0901 2010-04-15
  • 打赏
  • 举报
回复
谢谢楼上的,我先试一下,能行定送100分
vip__888 2010-04-15
  • 打赏
  • 举报
回复
发到你邮箱了
vip__888 2010-04-15
  • 打赏
  • 举报
回复
实例下载
调用我都帮你写好了 看看说明就行了
chen_ya_ping 2010-04-15
  • 打赏
  • 举报
回复
网上对于aspnetpager的资料很多的吧。
webdiyer 2010-04-15
  • 打赏
  • 举报
回复
我这里有分页存储过程生成工具呀,不过只支持单表,如果是多个表,可以在单表的基础上修改一下就行了,分页存储过程生成工具地址:http://www.webdiyer.com/Controls/AspNetPager/SpGenerator
remymartin 2010-04-15
  • 打赏
  • 举报
回复
CREATE Procedure PagingQuery
(
@Tables varchar(1000), --表或视图名
@PK varchar(100),--不重复的主键名
@Sort varchar(200) , --要排序的列名
@PageNumber int, --加载页面时显示第几页
@PageSize Decimal, --每页的记录数
@Fields varchar(1000), --要显示的字段名,用逗号分隔
@Filter varchar(1000), --进行筛选的字段(不用加WHERE)
@DataCount Decimal output, --总记录数
@PageCount int output, --总页数
@SortMode bit --排序的方式(正序倒序)
)
AS
Declare @strPageSize varchar(50)
Declare @strSkippedRows varchar(50)
Declare @strFilter varchar(1000)
Declare @strSimpleFilter varchar(1000)
/*Default Sorting*/

If @Sort Is Null Or @Sort = ''
Set @Sort = @PK
If @SortMode = 0
Set @Sort = ' Order By ' + @Sort + ' Desc'
Else
Set @Sort = ' Order By ' + @Sort + ' Asc'

/*Default Page Number*/
If @PageNumber < 1
Set @PageNumber = 1

/*Set paging variables.*/
Set @strPageSize = Convert(varchar(50), @PageSize)
Set @strSkippedRows = Convert(varchar(50), @PageSize * (@PageNumber - 1))

/*Set filter & group variables.*/
If @Filter Is Not Null And @Filter != ''
Begin
Set @strFilter = ' Where ' + @Filter + ' '
Set @strSimpleFilter = ' And ' + @Filter + ' '
End
Else
Begin
SET @strSimpleFilter = ''
SET @strFilter = ''
End

/*使用表来存放记录总数*/
Create Table #RowCount(RCount int)
Declare @GetCount varchar(1000)
Set @GetCount = 'Insert Into #RowCount (RCount) Select Count(' +@Pk +') From ' + @Tables + @strFilter
Exec(@GetCount)
Select @DataCount = RCount From #RowCount
Drop Table #RowCount
Set @PageCount =Ceiling(@DataCount / @PageSize)
/**********************************************************/

IF @PageNumber = 1 -- In this case we can execute a more efficient query with no subqueries.
Exec ('Select Top ' + @strPageSize + ' ' + @Fields + ' From ' + @Tables + @strFilter + @Sort)
ELSE -- Execute a structure of subqueries that brings the correct page.
Exec ('Select ' + @Fields + ' From ' + @Tables + ' Where ' + @PK + ' In ' + ' (Select Top ' + @strPageSize + ' ' + @PK + ' From ' + @Tables +
' Where ' + @PK + ' Not In (Select Top ' + @strSkippedRows + ' ' + @PK + ' From ' + @Tables +
@strFilter + @Sort + ') ' + @strSimpleFilter + @Sort + ') ' + @Sort)





GO
trip_008 2010-04-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE P_GetPagedOrders2005
@startIndex INT,
@pageSize INT
AS
begin
WITH orderList AS (
SELECT ROW_NUMBER() OVER (ORDER BY O.orderid DESC)AS Row, O.orderid,O.orderdate,O.customerid,C.CompanyName,E.FirstName+' '+E.LastName as EmployeeName
from orders O
left outer join Customers C
on O.CustomerID=C.CustomerID
left outer join Employees E
on O.EmployeeID=E.EmployeeID)

SELECT orderid,orderdate,customerid,companyName,employeeName
FROM orderlist
WHERE Row between @startIndex and @startIndex+@pageSize-1
end
trip_008 2010-04-14
  • 打赏
  • 举报
回复
http://51aspx.com/CV/AspNetPager72Samples/ 这个上面有很多啊,
wuyq11 2010-04-14
  • 打赏
  • 举报
回复
分页存储过程实例很多
AspNetPager结合存储过程

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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