用ADO分页啊 Dim oRs As New ADODB.Recordset
Dim szConn As String
Dim nPage As Integer
Dim nMaxPage As Integer
Dim nPageRecordCount As Integer
nPageRecordCount = 10 '每页记录数
nPage = 1 '当前页
szConn = "driver={sql server};server=nbtop;uid=aaa;pwd=;database=ywsncore"
oRs.PageSize = nPageRecordCount oRs.Open "select * from sysobjects where xtype='u'", szConn, 3, 3
oRs.AbsolutePage = nPage Dim i as Integer
For i = 0 To nPageRecordCount
If Not oRs.EOF Then
'这里处理数据
end if
Next i oRs.close
set ors=nothing
如果可以,最好用存储过程写分页
Dim szConn As String
Dim nPage As Integer
Dim nMaxPage As Integer
Dim nPageRecordCount As Integer
nPageRecordCount = 10 '每页记录数
nPage = 1 '当前页
szConn = "driver={sql server};server=nbtop;uid=aaa;pwd=;database=ywsncore"
oRs.PageSize = nPageRecordCount oRs.Open "select * from sysobjects where xtype='u'", szConn, 3, 3
oRs.AbsolutePage = nPage Dim i as Integer
For i = 0 To nPageRecordCount
If Not oRs.EOF Then
'这里处理数据
end if
Next i oRs.close
set ors=nothing
如果可以,最好用存储过程写分页
CREATE PROCEDURE usp_PagedAuthors
@iPage int,
@iPageSize int
AS
BEGINSET NOCOUNT ONDECLARE @iStart int
DECLARE @iEnd int
DECLARE @iPageCount int/*建立临时表*/CREATE TABLE #PagedAuthors (
--这个自增字段十分关键,就是靠他来完成分页标示。
ID int IDENTITY,
au_id varchar(11) NOT NULL ,
au_lname varchar(40) NOT NULL ,
au_fname varchar(20) NOT NULL ,
phone char(12) NOT NULL ,
address varchar(40) NULL ,
city varchar(20) NULL ,
state char(2) NULL ,
zip char(5) NULL ,
contract bit NOT NULL
)
/*先转存到上面的这个纪录集*/
INSERT INTO #PagedAuthors (au_id, au_lname, au_fname,
phone, address, city, state, zip, contract)
SELECT au_id, au_lname, au_fname,
phone, address, city, state, zip, contract
FROM authorsSELECT @iPageCount = COUNT(*) FROM authorsSELECT @iPageCount = CEILING(@iPageCount/@iPageSize) + 1IF @iPage < 1
SELECT @iPage = 1IF @iPage > @iPageCount
SELECT @iPage = @iPageCountSELECT @iStart = (@iPage - 1) * @iPageSize
SELECT @iEnd = @iStart + @iPageSize + 1/*这条sql语句就是选取固定的纪录集*/SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract
FROM #PagedAuthors
WHERE ID > @iStart
AND ID < @iEnd
DROP TABLE #PagedAuthorsSET NOCOUNT OFFRETURN @iPageCount
ENDVB里
dim cmdAuthors as new ADODB.Command
dim rsAuthors as new ADODB.Recordset With cmdAuthors
.ActiveConnection = strConn
.CommandText = "usp_PagedAuthors"
.CommandType = adCmdStoredProc .Parameters.Append .CreateParameter("RETURN_VALUE", adInteger, _
adParamReturnValue)
.Parameters.Append .CreateParameter("@iPage", adInteger, _
adParamINput, 8, iPage)
.Parameters.Append .CreateParameter("@iPageSize", adInteger, _
adParamINput, 8, 10) Set rsData = .Execute
End With
do while not rsData.eof '处理数据
rsData.movenext
loop
或者set datagrid1.datasource=rsData也可以