adoquery1.Open;
while not adoquery1.Eof do
begin
  for I := 0 to adoquery1.FieldCount-1 do  
    StringGrid1.Cells[I,count] := adoquery1.Fields.Fields[0].AsString;
adoquery1.Next;
inc(count);
end;
var
  I, J, K : Integer;
begin
  K := 0;
  with StringGrid1 do
    for I := 0 to ColCount - 1 do
      for J:= 0 to RowCount - 1 do
        begin
          K := K + 1;
          Cells[I,J] := IntToStr(K);
        end;
end;

解决方案 »

  1.   

    lxpbuaa说的不错,但事先必须设置StringGrid1.RowCount:=adoquery1.recordcount;
    StringGrid1.ColCount:=adoquery1.FieldCount;
      

  2.   

    只显示最后7个记录:
    代码如下:
    var
      I, J, K,n : Integer;
    begin
      K := 0;
      n:=0;
      StringGrid1.ColCount:=8;//(adoquery1.recordcount div 8);
      StringGrid1.RowCount:=(adoquery1.recordcount div 8);
      begin
      while not adoquery1.Eof do
      with StringGrid1 do
        for I := 0 to RowCount - 1 do
          for J:= 0 to ColCount - 1 do
           begin
              Cells[j,i] :=adoquery1['号码'];
              adoquery1.Next;
             end;
       end;
    不知何处错误?请指点!!!!!
      

  3.   

    成功了!
    原来是这样的!
    var
      I, J, K : Integer;
    begin
      K := 0;
    StringGrid1.ColCount:=8;//(adoquery1.recordcount div 8);
      StringGrid1.RowCount:=(adoquery1.recordcount div 8+1);
      with StringGrid1 do
        for I := 0 to RowCount - 1 do
          for J:= 0 to ColCount - 1 do
            begin
              K := K + 1;
              Cells[j,i] :=adoquery1['号码'];
               adoquery1.Next;
            end;