假如DBGrid和DataSource连接,DataSource和ADODataSet1连接。
  ADODataSet1.Open;
  
  ADODataSet1.Recordset.PageSize := 10;
  ADODataSet1.Recordset.AbsolutePosition := 1;
显示第一页
  ADODataSet1.Recordset.PageSize := 10;
  ADODataSet1.Recordset.AbsolutePosition := 11;
显示第二页

解决方案 »

  1.   

    My_first(海浪) :
    我使用你的方法不行吗?
        dbgrid仍然全部显示。
      

  2.   

    如果一定要每页分别显示,数据敏感控件是不行的,要自己写代码,我用的是stringgrid
      

  3.   

    1、程序开头必须 uses ADODB,ADOINT;这样才能调用原生的ADO COM对象,
    在程序中我调用了STRINGGRID控件。
    源程序如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, Grids, DBGrids, ADODB,adoint;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        StringGrid1: TStringGrid;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      i,r:integer;
      rs:ADOInt.recordset;
    begin
       adoquery1.Recordset.PageSize:=10;
       adoquery1.Recordset.AbsolutePage:=1;这里的值变动,STRINGGRID的值也变
       rs:=adoquery1.recordset;
       r:=0;
       for i:=1 to 10 do
       begin
         stringgrid1.Cells[r,0]:=rs.fields.get_item('xxx').Value;
         inc(r);
         rs.movenext;
       end;end;end.