DBGrid1.DataSource.DataSet.FieldByName('ColName').AsString;或者
adoQuery1.FieldByName('ColName').AsString;

解决方案 »

  1.   

    最简单最直接 加一个 DBedit 搞定 haha
      

  2.   

    不是,我是想把当前记录所有字段值都显示在不同的edit中,修改完了之后再update回去
      

  3.   

    太简单了
    if adoquery.eof and adoquery.bof then exit;
    //具有记录显示当前记录
     edit1.text:=adoquery.fieldvalues['aa'];
     ........
      

  4.   

    adoQuery1.FieldByName('ColName').AsString;
      

  5.   

    if adoquery.stae=dsEdit then adoquery.post;
    edit1.text:=adoQuery1.FieldByName('ColName').AsYourType;
    edit2....
    .....
    adoQuery1.Edit;
    这就是在浏览事件里
      

  6.   

    但如何知道dbgrid当前有没有记录被选中呢(必须显示当前选择的记录)
      

  7.   


    var
      x: word;
      TempBook: TBookMark;
    begin
      DBGrid1.Datasource.Dataset.DisableControls;
      if DBgrid1.SelectedRows.Count <> 0 then
      begin
        TempBook:= DBGrid1.Datasource.Dataset.GetBook;
        for x:= 0 to DBgrid1.SelectedRows.Count - 1 do
        begin
          if DBgrid1.SelectedRows.IndexOf(DBgrid1.SelectedRows.Items[x]) > -1 then
          begin
            DBGrid1.Datasource.Dataset.Book:= DBgrid1.SelectedRowsItems[x];
            showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);
          end;
        end;
      end;
      DBGrid1.Datasource.Dataset.GotoBook(TempBook);
      DBGrid1.Datasource.Dataset.FreeBook(TempBook);
      DBGrid1.Datasource.Dataset.EnableControls;
    end;
      

  8.   

    我把dbgrid.readonly=true;若当前有记录被选中就把当前记录所有字段值都显示在不同的edit中让用户修改,修改完了之后再用TADOQuery update回去
      

  9.   

    to Tiga(我要学习) :我设置dgRowSelect=true;dgMultiSelect=false;使dbgrid只能同时选中一行,所以DBgrid1.SelectedRows.Count为0;因为必须
    设置dgRowSelect=true;dgMultiSelect=true;之后SelectedRows才有意义
      

  10.   

    dbedit不通不就显示当前记录吗?改完再post不行吗?
      

  11.   

    我设置dgRowSelect=true;dgMultiSelect=false;使dbgrid只能同时选中一行,所以DBgrid1.SelectedRows.Count总是为0;因为必须设置dgRowSelect=true;dgMultiSelect=true;之后SelectedRows才有意义,请问有什么方法可以知道dbgrid选中了一行