DBGrid1显示数据表数据后
如何单击DBGrid1某一行,在文本框里(不使用DBEdit)?显示该行详细数据信息?

解决方案 »

  1.   

     edt_NO.Text := DataSource1.DataSet.FieldByName('NO').AsString;
      

  2.   

    Edit1.Text:=adoQuery1.Fields[0].AsString;
    Edit2.Text:=adoQuery1.Fields[1].AsString;
    .....
      

  3.   

    我的代码是这样的:with adoquery1 do
    begin
    sql.Clear;
    sql.Add('select * from student');
    sql.Add('where studentno=:selno');
    parameters.ParamByName('selno').Value:=dbgrid1.SelectedRows.Items[0];execsql;//问题是不是出在这里?
    sno_m.Text:=fieldbyname('studentno').AsString;
    sname_m.Text:=fieldbyname('name').AsString;
    age_m.Text:=fieldbyname('age').AsString ;
    sex_m.Text:=fieldbyname('sex').AsString;
    sclass_m.Text:=fieldbyname('class').AsString;
    end;
    但是在广西框里却没有显示
      

  4.   

    你跟一下,看看dbgrid1.SelectedRows.Items[0]是否是空值
      

  5.   

    打开结果集用Open 而不是execsql
      

  6.   

    dbgrid1.SelectedRows.Items[0]是不是所选行的第一个元素
    我的数据表是这样的:
    studentno  name   age   sex   class
    001         Jam    20    boy  computer
    002         Kate   20    girl  MIS
    主键是studentno
    那dbgrid1.SelectedRows.Items[0]应该就是studentno字段啊
    通过studentno查询他所对应的详细信息
      

  7.   

    with adoquery1 do 
    begin 
    sql.Clear; 
    sql.Add('select * from student'); 
    sql.Add('where studentno=:selno'); 
    parameters.ParamByName('selno').Value:=dbgrid1.SelectedRows.Items[0];//问题是不是出在这里?
    execsql;
    sno_m.Text:=fieldbyname('studentno').AsString; 
    sname_m.Text:=fieldbyname('name').AsString; 
    age_m.Text:=fieldbyname('age').AsString ; 
    sex_m.Text:=fieldbyname('sex').AsString; 
    sclass_m.Text:=fieldbyname('class').AsString; 
    end; 
    每点击一行就在文本框里显示相应的该行信息
      

  8.   

    執行Select語句 應該用Open 吧
    執行INSERT,DELETE,UPDATE語句才用EXECSQL .
      

  9.   

    afterscroll 事件里写
     变量:=DataSet.FieldByName(' 字段名').AsString;
    然后双击dbgrid
    edit1.text:=变量