ASP.NET分页
大家好!!我是一个刚刚开始学习.NET的菜鸟,最近有一个问题想请教一下:
1.在ASP.NET中前台如何利用数据库进行分页!!是前台的分页.
--------------------编程问答-------------------- 写存储过程。 --------------------编程问答-------------------- 能给详细说说吗 --------------------编程问答-------------------- 学了 SQL 就好说. 你在查询的时候不是可以有页数乘以页码来达到分页的效果的...
直接在工具里的话,你就用 DATAGRID 来限制行数咯..
有空发代码给你
关于 SQL 的查询语句 select top = 页数*页码 from 表名 where 条件.... --------------------编程问答-------------------- select top(页大小) * from 表名 where Key(主键)in (select top(页大小*页码) * from where 条件 order by Key desc) order by Key --------------------编程问答-------------------- http://blog.csdn.net/sq_zhuyi/archive/2007/07/13/1687954.aspx
http://blog.csdn.net/sq_zhuyi/archive/2008/04/28/2339553.aspx --------------------编程问答--------------------
/*Author:Jacky
*Date:2008-3-9
*Description:Use to control pages
*/
alter PROC TurningPage
@qCols varchar(200), --需要查询的列
@qTable varchar(200), --需要查询的表 (包含where也行)
@pKey varchar (20), --主键
@numPerPage int, --每页的记录数
@pageNO int --要显示的页码, 从1开始
AS
set nocount on
BEGIN
DECLARE @sqlText AS varchar(1000)
DECLARE @sqlTable AS varchar(1000)
SET @sqlTable = 'SELECT TOP ' + CAST((@pageNO+1) * @numPerPage AS varchar(30)) + ' ' + @qCols +' from '+ @qTable
SET @sqlText = 'SELECT TOP ' + CAST(@numPerPage AS varchar(30)) + ' * ' +
'FROM (' + @sqlTable + ') tableA WHERE ' + @pKey + ' NOT IN(SELECT TOP ' +
CAST(@pageNO * @numPerPage AS varchar(30)) + ' ' + @pKey +
' FROM (' + @sqlTable + ') tableB)'
EXEC (@sqlText)
print(@sqltext)
END
exec dbo.TurningPage '*','emp','ID',3,0
FYI
我自己写的存储过程翻页,供楼主参考~
good luck --------------------编程问答-------------------- 如果想用控件的话,可以到网上找找那个aspnetpager控件,各个方面都很不错。 --------------------编程问答-------------------- 非常感谢!! --------------------编程问答-------------------- AspnetPager控件+存储过程 --------------------编程问答-------------------- lz要干嘛? --------------------编程问答-------------------- CREATE PROCEDURE GetData
@PageIndex int,
@PageSize int,
@order varchar(24), --排序字段
@method varchar(8), --排序方式
@where varchar(200), --条件语句
@RecordCount int output,
@PageCount int output
AS
declare @methodd varchar(8)
if @method = 'asc'
set @methodd = 'desc'
else if @method = 'desc'
set @methodd = 'asc'
SELECT @RecordCount=count(*) FROM [table] where col1 like +@where
SET @PageCount = CEILING(@RecordCount * 1.0 / @PageSize)
DECLARE @SQLSTR NVARCHAR(300)
IF @PageIndex = 0 OR @PageCount <= 1
SET @SQLSTR ='SELECT TOP '+STR( @PageSize )+
' * FROM [table] where col1 like '+@where+' order by '+@order+' '+@method
ELSE IF @PageIndex = @PageCount - 1
SET @SQLSTR ='SELECT TOP '+STR( @RecordCount - @PageSize * @PageIndex )
+' * FROM [table] where col1 like '+@where+' order by '+@order+' '+@method
ELSE
SET @SQLSTR ='SELECT TOP '+STR( @PageSize )+' * FROM ( SELECT TOP '
+STR( @RecordCount - @PageSize * @PageIndex )+' * FROM [table] where col1 like '
+@where+' ORDER BY '+@order+' '+@methodd+' ) nTable order by '+@order+' '+@method
EXEC (@SQLSTR)
GO
--------------------编程问答-------------------- 我也想知道,正在找這方面的資料~~~~~
补充:.NET技术 , .NET Framework