很简单
Dbgrid1.DataSource.DataSet.RecNo就是你需要的值

解决方案 »

  1.   

    不会的
    要不就是你的DBGRID没有和数据库连接起来
      

  2.   

    连着的啊,都把数据显示出来了。帮助是这样写的:
    property RecNo: Integer;DescriptionAs implemented in TDataSet, the value of RecNo is always -1. Ordinarily an application does not access RecNo at the TDataSet level. Instead a re-implemented RecNo property in a descendant class such as TTable is accessed. RecNo provides a fallback property for derived datasets that do not support record numbers.
      

  3.   

    我用的SQL Server,问题还是没有解决,急啊。
      

  4.   

    johnsonrao,你指的计算行号是自增长类型的吗?
    如果是那种,删除的就会空着啊,也不能体现真正的行号啊?
      

  5.   

    首先在外部定义一个变量,如i加一个计算字段如 FRecNo在打开DataSet前 赋值 i:=0;
    在DataSet的OnCalcFields事件中加代码:With DataSet do begin
         FieldByName('FRecNo').asInteger:=i+1;
    end;以后调用字段 FRecNo 就是真正的行号。
      

  6.   

    少写了一句,With DataSet do begin
         FieldByName('FRecNo').asInteger:=i+1;
       i:=i+1; 
    end;
      

  7.   

    showmessage(inttostr(adotable1.RecNo)) ;ok!!!
      

  8.   

    兄弟,你用的是BDE的TQUERY 或TTABLE对吧?,BDE中的TTABLE如果是和*.DB连接的话用Dbgrid1.DataSource.DataSet.RecNo就可以,如果是其它数据库SQLSERVE或其它就不行了。但你可以用ADO组件,不要用BDE,ADO组件可以返回当前记录号。但就没有BDE速度快了。