我用了两个DBGrid,第一个显示数据库中的所有表,我想鼠标选中第一个DBGrid中的一条数据时,第二个DBGrid可以显示出来表中的数据信息,我查了一下,有一个OnCellClick事件,那这个事件触发后,怎么让数据在第二个DBGrid中显示呢?谢谢,新手,不会的太多了。

解决方案 »

  1.   

    select * from dbgrid1.tablename
      

  2.   

    我用了use admire select * from sysobjects where xtype='U',在第一个DBGrid中,显示表时,不光有name,还有id、xtype之类的东西,第二个DBGrid只是想显示选中的第一个DBGrid中的那一条的表里的信息,楼上那个我试了,没显示出来啊。
      

  3.   

    在第一个表的FATASOURCE中的DataSource1DataChange事件中写
         adoquery2.Close;
        adoquery2.SQL.Clear;
        adoquery2.SQL.Add(sql);
        adoquery2.Open;
    试试。我是这样解决的
      

  4.   

    手误“在第一个表的DATASOURCE中的DataSource1DataChange事件中写”
      

  5.   

    简单
    Sql.Text := 'Select * from SysUser where 字段="' + DBGrid1.SelectedField.Text + '"'字段你自己要清楚你所要在第二个DBGrid中的字段名
      

  6.   

    在第一个表格的oncellclick事件中取出当前单元格的内容xxx,
    同时刷新第二个表格邦定的query内容为,select * from xxx
      

  7.   

    qustion000123的方法我怎么试验不行啊,我试验了一下怎么不可以啊.如何确定好你点的第一个dbgrid中是什么值啊?可以交流一下吗[email protected]
      

  8.   

    我一般是这样处理,把第一个dbgrid的option的rowselect属性设为true,然后当单击第一个dbgrid时,就可以每次选中一行了,再根据选中的行,利用相关的属性,比如dbgrid1.SelectedField.AsVariant从中查询出选中记录的主键字段,然后赋给一个变量,在用查询
    字符串变量1=‘select 字段1,字段2,.... from 表 where 主键字段=’+变量
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add(字符串变量1);
    adoquery1.open;
      

  9.   

    来晚了,让前面都说过了。在第一个表的DATASOURCE中的DataSource1DataChange事件中写:with adoquery2 do
    begin
      close;
      sql.clear;
      sql.add('select * from '''+adoquery1.fieldbyname('name').value+'''');
      Open;
    end;获得一个adoquery中的字段值可以用 adoquery.fieldbyname('字段名称').value,
    也可用 adoquery.fields.fields[Index].value (Index 为列顺序,从0开始计数),
    如第一列值可用 adoquery1.fields.fields[0].value,个人经验:最好不要用 select * from 表 ,还是 select 字段1,字段2,.... from 表 
      

  10.   

    也就是说可以实现,单击DBGRID表其中一行时,其内容显示到相应的编辑框中...再移动光标编辑框中的数据随着光标选中行自动变化.....
    也是这样实现的吗?
      

  11.   

    我个人认为,应该建立主从表机制;在第一个表的相关的数据集组件的AFTERSCROLL中,重新打开第二个DBGRID相关的数据集;
    如DSTDETAIL.CLOSE;
    DSTDETAIL.COMMANDTEXT := ' SELECT * FROM '+ DSTMASTER.FIELDBYNAME('TABLENAME').ASSTRING;
    DSTDETAIL.OPEN;