说明:我的dbgrid的datasourse是adoquery1,如何让dbgird的ondblclick事件触发便可使这一条数据回写到edit中去!就是形如用table时这样的:edit1.Text:= ADOTablezgdd.fieldbyname('XM').asstring;

解决方案 »

  1.   

    这样用是可以的: 
    Edit1.Text :=adoqueryzgdd['xm'];
    但是这样库里不能为空,为空就报错了,如何解决?
      

  2.   

    前面加一句判断这是不是空的,如果是空的就退出
    if adoquery1.IsEmpty then 
     exit
     else
     ....
      

  3.   

    procedure form1.DBGrid1DblClick(
      Sender: TObject);
    begin
      edit1.text := adoquery1.fieldbyname('field').asstring;
      edit2.text := adoquery1.fieldbyname('field').asinteger;
      ........
    end;
      

  4.   

    edit1.Text:= dbgrid.datasourse.dataset.fieldbyname('XM').asstring;
      

  5.   

    for i := 0 to FieldCount - 1 do
      Edit1.Text := Edit1.Text + DBGrid1.Field[i].AsString;