dbgrideh查询出结果,如何通过该行光标所在的某列定位查询出更多的东西可能看上面看不懂,我是一个初学者,在窗体中放了两个dbgrideh组件,我在左边的dbgrideh1中查询出有很多记录(比如数据列有crdh,rq),我想通光标定位在某一行时,右边的dbgrideh2中就有相应的数据(其中这个查询中也有crdh,对应了dbgrideh1中的crdh),如何来实现?谢谢

解决方案 »

  1.   

    或者说是我不懂如何取dbgrideh中当前行中某一列的数据值
      

  2.   

    可能看上面看不懂,我是一个初学者,在窗体中放了两个dbgrideh组件,我在左边的dbgrideh1中查询出有很多记录(比如数据列有crdh,rq),我想通光标定位在某一行时,右边的dbgrideh2中就有相应的数据(其中这个查询中也有crdh,对应了dbgrideh1中的crdh),如何来实现?谢谢
    -----------------------------------------------------------------------------------
    dbgrideh是个数据感知控件,表格里的数据其实都是来源于数据集的,所以实现你的要求肯定都是在数据集里操作完成的;1、你的问题:2个dbgrideh表格,左边表格字段:crdh,rq,右边字段:crdh,....
                点击左边某一行,通过crdh字段,右边表格显示和左边crdh字段相同的所有相关行。2、实现有2种方法:
       方法A、过滤:前提要求右边表格已经查询出来了所有数据,根据左边的crdh字段的值显示过滤显示相关的值,下面的代码写在DataSet(dbgrideh2连接的DataSource连接的DataSet)的AfterScroll事件下:
          dbgrideh2.DataSource.DataSet.Filtered := False;  
         dbgrideh2.DataSource.DataSet.Filter := 'crdh='''++dbgrideh2.DataSource.DataSet.FieldByName('crdh').AsString'''';  
         dbgrideh2.DataSource.DataSet.Filtered := True;  
       方法B、通过左边点击后再查询数据库的方法,代码如下:
          dbgrideh2.DataSource.DataSet.close;
         dbgrideh2.DataSource.DataSet.SQL.Clear;
         dbgrideh2.DataSource.DataSet.SQL.Add('select * from 你的表 where ='''++dbgrideh2.DataSource.DataSet.FieldByName('crdh').AsString'''');
         dbgrideh2.DataSource.DataSet.Open;
       说明:上面代码的前提是你使用的数据集是ADOQuery,如果数据集使用的ADODataSet就是下面这样:
         ADODataSet.Close;
        ADODataSet.commandtext := '和上面一样';
        ADODataSet.Open;如果还有问题,欢迎继续发帖讨论,也可以加入QQ高级群:9642802,和管理员大海一起讨论。 
      

  3.   

    类似主从表一样的效果
    方法一:
    假设adoquery1、datasource1对应左边的
        adoquery2、datasoruce2对就右边的那么:将adoquery2的SQL写为select * from TB2 where crdh=:crdh
         并将adoquery2的datasource属性设置为datasource1方法二:可以在datasource1的ondatachange事件中安排
      

  4.   

    在CELLCLICK中写代码 
    通过这个来获取数据表中的数据
    dbgrid.datasouce.dataset.fieldbyname('cname').asstring;
    然后写SQL语句查询数据库 操作右边的GRID
      

  5.   


    楼主找的是这个呢?
    DbNetList是一个综合功能的列表选择组件,作为动态HTML(DHTML)实现。运用DbNetList,你可以快速为自己的web页面添加数据库驱动的列表、下拉式列表(drop-down)、树型和复选框列表。DbNetList兼容最流行的各种数据库服务器,包括:SQL Server、Oracle和Informix。具体功能:    生成列表、多列列表、下拉式列表(drop-down)、树型列表、复选框列表...
        提供ASP 和 ASP.NET的本地版本。
        基于浏览器。无论何处均可设计和运行。无需客户端安装。无需Java。纯DHTML。
        完全封装的组件。轻松与任一web页面整合。
        生成稳健的基于web的应用程序。
        支持大量数据库,包括:SQL Server、 MSDE、 Oracle、 Sybase、 DB2、 MySQL、 Access、 Visual Fox Pro、 InterSystems Caché、 Informix 等,还有更多。
        完全可以自定义配置。
        DbNetList特别为拓展微软IE家族浏览器的性能而设计,你的客户端将需要IE 5.0或更高版本。实际上,只需几行代码,就把一个DbNetList包含到了你的应用程序。甚至通常复杂的结构,比如嵌套的树状列表,也仅仅需要几行代码就可以实现:
        DbNetList包含了所有这些强大的、额外的功能
        列表中附加的隐藏数据项目,可以被获取、作为每一个行/节点的属性存储并可以通过程序操作。
        通过selectData()方法发出ad-hoc数据库询问。
        "按需"扩展的树型列表 - 管理大型嵌套目录,无需在顶层预先载入整个结构。
        自动完成 - 当定焦在DbNetList时,键入一串字符,第一个匹配行将自动高亮。