第一条记录是1,第二条是2,也就是在最左边显示记录在记录集中的位置

解决方案 »

  1.   

    sql server的数据库好不行,如果是ORACLE的数据库直接在SQL语句里用ROWNUM字段好象就可以了
      

  2.   

    在adoquery里面新建一个计算字段:RNo
    在adoquery的CalcFields事件里写上:
    procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
    begin
      if dataset.FieldByName('RNo').IsNull then
        dataset.FieldByName('rno').Value := dataset.RecNo ;
    end;
    //ok了
      

  3.   

    如果有问题(可能第一条记录是-1)
    就用下面的:
    procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
    begin  if dataset.FieldByName('RNo').IsNull then
        if dataset.RecNo <0 then
          dataset.FieldByName('rno').Value := 1
        else
          dataset.FieldByName('rno').Value := dataset.RecNo ;
    end;
      

  4.   

    是的RecNo这个属性就是当前记录的编号的
    显示在你的dbgrid就可以了
      

  5.   

    首先双击DBGRID,增加1个COLUMN,对应你的FIELDNAME为序号
    设定序号列的TITLE属性集合的CAPTION属性值为’序号‘。
    然后在DBGRID的ONDrawColumnCell写代码如:
    NO是在前面定义的一全局变量,赋初值1。
         if column.FieldName='no' then
            begin
               dbgrid1.Canvas.Pen.Color:=clblack;
               dbgrid1.Canvas.TextOut(rect.left,rect.top,inttostr(no));
               no:=no+1;
            end;
    还有,当该数据集组件关闭时,记得赋no值为1
    或者直接赋值recno值也是可以的