今天修改原来代码中的DataGrid分页部分,顺便重新修搞了个存储过程(学习了csdn上的例子!)
1
/*
2
一个将数据分页的存储过程
3
*/
4
CREATE PROCEDURE Proc_Pagination
5
@tb varchar(50), --表名
6
@col varchar(50), --按该列来进行分页
7
@coltype int, -- @col 列的类型,0-数字类型,1-字符类型,2-日期时间类型
8
@orderby int, --排序,0-顺序,1-倒序
9
@collist varchar(800), --要查询出的字段列表,*表示全部字段
10
@pagesize int=10, --每页记录数
11
@page int=1, --指定页
12
@condition varchar(800) --查询条件
13
AS
14
15
DECLARE @sql nvarchar(4000)
16
DECLARE @where1 varchar(800)
17
DECLARE @where2 varchar(800)
18
IF @condition is null or rtrim(@condition)=''
19
BEGIN --没有查询条件
20
SET @where1=' WHERE '
21
SET @where2=' '
22
END
23
ELSE
24
BEGIN --有查询条件
25
SET @where1=' WHERE ('+@condition+') AND ' --本来有条件再加上此条件
26
SET @where2=' WHERE ('+@condition+') ' --原本没有条件而加上此条件
27
END
28
29
IF @orderby=0 --排列顺序 0 顺序 1 倒序
30
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
31
' FROM '+@tb+@where1+@col+'>(SELECT MAX('+@col+') '+
32
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
33
@col+' FROM '+@tb+@where2+'ORDER BY '+@col+') t) ORDER BY '+@col
34
ELSE
35
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
36
' FROM '+@tb+@where1+@col+'<(SELECT MIN('+@col+') '+
37
' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+
38
@col+' FROM '+@tb+@where2+'ORDER BY '+@col+' DESC) t) ORDER BY '+
39
@col+' DESC'
40
IF @page=1--第一页
41
SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+' FROM '+@tb+
42
@where2+'ORDER BY '+@col+CASE @orderby WHEN 0 THEN '' ELSE ' DESC' END
43
EXEC(@sql)
44
GO
45
46
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)