我想用 DataSource ADOConnection ADOTable DBGrid Edit Button 实现数据查询功能,也就是在Edit中输入查询字段,点击Button提交,开始查询,然后在DBGrid中把符合条件的数据显示出来。  我用 DataSource ADOConnection ADOTable DBGrid 可以查询数据了。谢谢!

解决方案 »

  1.   

    用filter来过滤数据呀,本地操作,速度快
      

  2.   

    filter就是把一部分where条件放到这个属性里
    客户端会自动按照这个条件过滤数据集取出的数据
      

  3.   

    将edit1中的东西放到Where语句中
      

  4.   

    看一下联机帮助,里面filter有很好的例子的呀
      

  5.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    with ADOTable1 do begin
      Filtered := False;
      Filter := 'FieldName = '''+Edit1.Text+'''';//字符型字段
      // Filter := 'FieldName = '+Edit1.Text+';//数值型字段
      Filtered := True;
    end;
      

  6.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    with ADOTable1 do begin
      Filtered := False;
      Filter := 'FieldName = '''+Edit1.Text+'''';//字符型字段
      // Filter := 'FieldName = '+Edit1.Text;//数值型字段
      Filtered := True;
    end;
      

  7.   

    oooooooo
    --------
    接分快乐
    -------
    用Adotable的filter
      

  8.   

    用ADOQuery
    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    with ADOQuery1 do begin
      Close;
      SQL.Clear;
      SQL.Add('select * from table where cx=:cx');
      ParamsByName('cx'):=Edit1.Text;
      Open;
    end;
      

  9.   

    adotable.Locate('Company;Contact;Phone',//field// VarArrayOf(['Sight Diver', 'P', '408-431-1000']),//value// [loPartialKey]//参数);
      

  10.   

    为什么不用ADOQUERY,其实还是ADOQUERY强大!!!
    为什么不用ADOQUERY,其实还是ADOQUERY强大!!!
    为什么不用ADOQUERY,其实还是ADOQUERY强大!!!
    为什么不用ADOQUERY,其实还是ADOQUERY强大!!!
    为什么不用ADOQUERY,其实还是ADOQUERY强大!!!
      

  11.   

    同意楼上观点,我喜欢用ADOQUERY
      

  12.   

    问题是只要我把DBGrid的DataSource一连接上,所有数据都显示出来了,而我是想当查询的时候显示符合条件的数据!
      

  13.   

    TO  zjf27(How d you d) :
      请问 ParamsByName('cx'):=Edit1.Text; 中的  cx  是怎么定义的?
      

  14.   

    怎么可能,只要用 madyak(无天) 的方法,肯定行
    还可以在adotable的onFilterRecord事件里写:
    accept:=dataset.FieldByName('name').AsString=edit1.Text;
    或是:
    accept:=dataset.FieldByName('name').AsFloat=strtofloat(edit1.Text);
      

  15.   

    TO  zjf27(How d you d) :
      
    [Error] Unit1.pas(37): Undeclared identifier: 'ParamsByName'
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
      

  16.   

    用 madyak(无天) 的方法,能运行,可是当我在 Edit 中输入 查询关键字,按 BitBtn按钮的时候,出现
    Project Project1.exe raised exception class EOleException with message 项目在所需的名称或序数中未被发现。的错误。
      

  17.   

    要把FieldName换成你库中表格的字段!
      

  18.   

    with ADOQuery1 do begin
      Close;
      SQL.Clear;
      SQL.Add('select * from  rk where xh=:xh');
      Parameters.ParamByName('xh').Value:=Edit1.Text;
      Open;
    end;
    不好意思,好久没有用过单层了,语句都忘了