怎么得到DBGrid里当前选的一条记录的值 急啊1!!谢谢

解决方案 »

  1.   

    直接取DBGRID绑定数据集里对应的值就行了,DBGRID激活的当前行就是数据集里的当前记录(前提是DBGRID里没有设置多选)
      

  2.   

    DBGRID????在那里啊 我怎么找不到 谢谢谢谢 再给个提示好吗
      

  3.   

    直接取DBGRID绑定数据集里对应的值就行了,DBGRID激活的当前行就是数据集里的当前记录这样是正确的。
      

  4.   

    //在DBGrid点击掉用   showrecord
    procedure TAreaEditForm1.DBGrid1CellClick(Column: TColumn);
    begin
    if not DM1.ADOTable1.Active then exit;
       showrecord;
    end;
    //与Edit连接数据
    procedure TAreaEditForm1.showrecord;
    begin
       if DM1.ADOTable1.RecordCount=0 then exit;
       Edit1.Text:=DM1.ADOTable1.Fields[1].AsString;
       Edit2.Text:=DM1.ADOTable1.Fields[2].AsString;
    end;
      

  5.   

    例如:
    DBGrid1连接显示的数据集是ADOQuery1,
    则在没有设置多选的情况下,你获取当前选中行的值,就可以这样了:
    ADOQuery1->FieldByName('FieldName')->AsString; //这就是当前选中行FiedlName字段的值
    当然了,如果是其它数据类型,就用AsInteger/AsDateTime等了
      

  6.   

    定位dbgrid后,它的数据集自动定位过去了,直接用就可以。
      

  7.   

    procedure TForm1.DBGrid1DblClick(Sender: TObject);      //雙擊事件
            var
                no:string;
    begin
             if  ADOQuery2.Active then
                  begin
                    no:=DBGrid1.DataSource.DataSet.Fields[2].value;   //得到DBGrid值
                    ADOQuery2.close;
                    ADOQuery2.SQL.clear;
                    //ADOQuery2.SQL.Add('select * from Tbl1 where id='''+no+'''');
                    ADOQuery2.SQL.Add('select * from Tbl1 where id=:no');
                    ADOQuery2.parameters.parambyname('no').value:=no;
           ADOQuery1.Prepared ;
                    ADOQuery2.open;
                  end;
    end;