如何在选中dbgrid中的一个单元时,提取该单元在数据库表中的那条记录。
例如:
表stud中有:code,name,pass,year
在dbgrid中只通过查询提取了name字段。现在要是单击dbgrid中的任意name怎样查询其对应的pass。

解决方案 »

  1.   

    select pass from table 
           where name=
      

  2.   

    在dbgrid的单击事件写(最好是双击)
    Edit1.Text := Trim(ADOQuery1.FieldByName('pass').AsString); ADOQuery1是与dbgrid相连的那个
      

  3.   

    我用的bde,通过DataSource连接的dbgrid
      

  4.   

    我以前这样做的,你看行不行。
    先放个popupmenu1,用dbgrid1连popupmeu1。在popupmeu1中添加一个选项譬如“查找”,然后在它的onclick事件中添加。
    var
      str1,StrS,FN:string;//FN=fieldname
    begin
    FN:=dbgrid2.Columns[dbgrid1.SelectedIndex].FieldName;  //取出字段名
    StrS:=ADOQuery1.FieldByName(FN).AsString;  //取出你点击的单元格值
    str1:='Select * from tablename where '+FN+'='+StrS;
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(str1);
    ADOQuery1.Open;
    end;
      

  5.   

    难道没有办法将DBgrid的recodno同DataSource联系起来吗?
      

  6.   

    我是这样的查询的时候选择name和pass,只在TDataGrid中显示name;
    再放个TDBEdit,DataSource和TDataGrid一样,DataField选成pass
      

  7.   

    ermao998(二毛) 你的方法是治标不治本啊,但是也表示万分感谢。