我写了这样的一个查询窗体,(注:combobox1中的值为bookin表中的几个字段)
我现在想实现,当我从combobox1中选择一个字段,然后再在edit1中输入内容
单击"确定"按钮来查询想要找的内容,然后把查询到的内容在dbgrid中显示,
为什么输入后在DBgrid中不显示数据,明明有符合条件的记录吗!(注:DBgrid的数据源的设置这一点是没有问题的!)
请指导,谢谢!
     我的数据源是这样设计的:
            dbgrid.datasource的值是:datasouce1
            datasource1.daset的值是:dm.query2.
 
      with dm.query2 do
          begin
             close;
            sql.Clear;
            sql.Add('select * from bookin where' + combobox1.text + '= :E');
            Parameters.ParamByName('E').Value:=trim(edit1.Text);
            Active:=true;
            prepared:=true;
            open;
         end;
我在输入条件后,按查询,明明有符合条件的记录,可就是不显示,

解决方案 »

  1.   

    Active:=true;其实就是OPEN,重复写干什么啊?
    当然....这不是你的问题的答案....帮你顶一下
      

  2.   

    是完全匹配吗?如果是部分匹配应该这样写
    sql.Add('select * from bookin where' + combobox1.text + 'LIKE :E ');
    Parameters.ParamByName('E').Value:='%'+trim(edit1.Text)+'%';
      

  3.   

    另外,prepared只能在数据集关闭时用
     with dm.query2 do
             begin
                close;
                sql.Clear;
                sql.Add('select * from bookin where' + combobox1.text + 'LIKE :E');
                Parameters.ParamByName('E').Value:='%' + trim(edit1.Text) +'%';
                prepared:=true;
                open;
             end;