今天修改原来代码中的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) --查询条件
13AS
14
15DECLARE @sql nvarchar(4000)
16DECLARE @where1 varchar(800)
17DECLARE @where2 varchar(800)
18IF @condition is null or rtrim(@condition)=''
19 BEGIN --没有查询条件
20 SET @where1=' WHERE '
21 SET @where2=' '
22 END
23ELSE
24 BEGIN --有查询条件
25 SET @where1=' WHERE ('+@condition+') AND ' --本来有条件再加上此条件
26 SET @where2=' WHERE ('+@condition+') ' --原本没有条件而加上此条件
27 END
28
29IF @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
34ELSE
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'
40IF @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
43EXEC(@sql)
44GO
45
46
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) --查询条件
13AS
14
15DECLARE @sql nvarchar(4000)
16DECLARE @where1 varchar(800)
17DECLARE @where2 varchar(800)
18IF @condition is null or rtrim(@condition)=''
19 BEGIN --没有查询条件
20 SET @where1=' WHERE '
21 SET @where2=' '
22 END
23ELSE
24 BEGIN --有查询条件
25 SET @where1=' WHERE ('+@condition+') AND ' --本来有条件再加上此条件
26 SET @where2=' WHERE ('+@condition+') ' --原本没有条件而加上此条件
27 END
28
29IF @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
34ELSE
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'
40IF @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
43EXEC(@sql)
44GO
45
46