1
这是存储过程.加入SQL数据库中
2
CREATE PROCEDURE [spGet_Customers_By_Page]
3
@CurrentPage int,
4
@PageSize int,
5
@TotalRecs int output
6
AS
7
-- 创建一个 temp table 以暂存所请求的 Customers 表数据.
8
--由于Custormers表并没有Identity列来对所有记录进行顺序编号,
9
--因此需要在临时表中增加一个Identity列.
10
CREATE TABLE #TempTable
11
(
12
ID int IDENTITY PRIMARY KEY,
13
CompanyName nvarchar(40),
14
ContactName nvarchar(30),
15
ContactTitle nvarchar(30),
16
Phone nvarcha*(24),
17
Fax nvarchar(24),
18
)
19
--选择了Customers表的所有行(仅限于所需要的列),并将之填充入临时表.
20
INSERT INTO #TempTable
21
(CompanyName , ContactName, ContactTitle, Phone, Fax)
22
SELECT CompanyName , ContactName, ContactTitle, Phone, Fax
23
FROM Customers
24
--利用@CurrentPage和@PageSize变量,可以确定所选的第一条和最后一条纪录.
25
DECLARE @FirstRec int ,@LastRec int
26
SELECT @FirstRec = (@CurrentPage - 1) * @PageSize //这里的firstRec关不代表当前页首条纪录的id值,而是比id值少一的最近值.
27
SELECT @LastRec = (@CurrentPage * @PageSize +1) //这里的LastRec关不代表当前页首条纪录的id值,而是比id值大一的最近值
28
//为什么要写成这样,当然有它的原因,因为只有这样才不会缺失首页的首条纪录.
29
30
--通过select查询语句确定返回到web表单的一页数据.
31
SELECT CompanyName , ContactName, ContactTitle, Phone, Fax
32
FROM #TempTable
33
WHERE ID > @FirstRec AND ID < @LastRec
34
35
--获得Customers表的所有记录数,并将记录数 (COUNT*) 赋给@TotalRec参数值返回.
36
SELECT @TotalRecs = COUNT(*) FROM Customers
37
38
2后台代码:
39
using System;
40
using System.Collections;
41
using System.ComponentModel;
42
using System.Data;
43
using System.Drawing;
44
using System.Web;
45
using System.Web.SessionState;
46
using System.Web.UI;
47
using System.Web.UI.WebControls;
48
using System.Data.SqlClient;
49
namespace changedpage
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50