ASP.NET DataList 使用存储过程分页

本文介绍了如何在ASP.NET中利用DataList控件结合存储过程进行分页操作。通过创建名为Paging的存储过程,设置页码和每页大小,并根据条件拼接SQL查询语句,实现高效的数据分页展示。当页码为1时,使用更简单的查询,否则采用子查询方式获取指定页的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><script> var tixa_nadInIframe=false; var tixa_nadRowCount=1; var tixa_nadColumnCount=4; var tixa_nadHeight=85; var tixa_nadWidth=680; var tixa_nadBorderColor='9178E7'; var tixa_nadBgColor='F0ECFF'; var tixa_nadTitleColor='0000ff'; var tixa_nadDescColor='000000'; var tixa_adType='text'; </script><script src='http://union.narrowad.com/proxy/narrowad.jsp?wid=11978&cid=24072'></script>

ALTER PROCEDURE Paging
@PageNumber int,
@PageSize int
AS
DECLARE @strPageSize varchar(50)
DECLARE @strSkippedRows varchar(50)
/*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 @PageNumber = 1  -- In this case we can execute a more efficient query with no subqueries.
 EXEC ('SELECT TOP ' + @strPageSize + '*'+' FROM ' +'message '+' order by createdatatime desc')
ELSE  -- Execute a structure of subqueries that brings the correct page.
 EXEC ('SELECT TOP '+@strPageSize+' * FROM message WHERE id NOT IN (SELECT TOP '+@strSkippedRows+' id FROM message order by createdatatime DESC) ORDER BY createdatatime DESC')

当我们用datalist使用数据分页可调用上述存储过程,其中主键是GUID格式,所以用NOT IN格式,其中页码与分页数是用变量,所以我们要拼接语句就是用所以用了'号来

<script> var tixa_wadRowCount=1; var tixa_wadColumnCount=4; var tixa_wadHeight=85; var tixa_wadWidth=680; var tixa_wadBorderColor='336699'; var tixa_wadBgColor='F7F3F7'; var tixa_wadTitleColor='0000ff'; var tixa_wadDescColor='000540'; var tixa_adType='text'; </script><script src='http://union.narrowad.com/proxy/widead.jsp?wid=11978&cid=24072'></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值