procedure Tddfform.btnInquClick(Sender: TObject);
  var
  bd,ed:tdatetime;
begin
  bd := DateTimePicker1.datetime;
  ed := DateTimePicker2.datetime;
  adoquery1.close;
  adoquery1.SQL.Clear;
  adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff');
  adoquery1.sql.add('where llrq >= :bd and llrq <= :ed');
  adoquery1.Open;
end.
这是热心网友帮我修改过的代码。可是我查询出来以后。DBGrid不显示根据条件查询出来的结果

解决方案 »

  1.   

    adoquery1.sql.add('where llrq >= :bd and llrq <= :ed'); 这里定义了参数,你怎么没有个参数赋值呢,你该不会认为
      bd := DateTimePicker1.datetime; 
      ed := DateTimePicker2.datetime; 
    上面两句就是赋值了吧
      

  2.   

    你在哪学到的这种赋值呀,按下面赋值
    ADOQuery1.Parameters.ParamByName('bd').Value
    ADOQuery1.Parameters.ParamByName('ed').Value
      

  3.   

    procedure Tddfform.btnInquClick(Sender: TObject); 
      var 
      bd,ed:string;         //改了
    begin 
      bd := formatdatetime('yyy-mm-dd',datetimepicker1.date);   //改了
      ed := formatdatetime('yyy-mm-dd',datetimepicker2.date);   //改了
      adoquery1.close; 
      adoquery1.SQL.Clear; 
      adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); 
      adoquery1.sql.add('where llrq >='''+ :bd+ ''' and llrq <= '''+:ed'''');                  //改了
      adoquery1.Open; 
    end. 
      

  4.   


    procedure Tddfform.btnInquClick(Sender: TObject); 
      var 
      bd,ed:tdatetime; 
    begin 
      bd := DateTimePicker1.datetime; 
      ed := DateTimePicker2.datetime; 
      adoquery1.close; 
      adoquery1.SQL.Clear; 
      adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); 
      adoquery1.sql.add('where llrq >= :bd and llrq <= :ed'); 
      adoquery1.Parameters.ParamByName('bd').Value := bd;   //这里赋值
      adoquery1.Parameters.ParamByName('ed').Value := ed;
      adoquery1.Open; 
    end. 
      

  5.   

    如果你把bd 只当作一个字符串来传递的话,那就sql语句中不要有':',如果sql语句中带':',那就是被识别为sql中的参数,你是需要另外赋值的
      

  6.   


    兄弟。你的代码管用。O YE。搞定。太谢谢你拉~哈哈~~~~
      

  7.   

    重新发一下吧,时间的查询确实跟别的不一样,你再试试下面的代码procedure Tddfform.btnInquClick(Sender: TObject); 
    begin 
      adoquery1.close; 
      adoquery1.SQL.Clear; 
      adoquery1.sql.Add('select pjbh,pjmc,pjgg,dw,dj,sl,zj,bm,lyr,llrq,pjlb,czy,bz from ff'); 
      adoquery1.sql.add(format('where llrq between #%s# ', [DateTimeToStr(datetimepicker1.Datetime)])); 
      adoquery1.sql.add(format('and #%s#',[DateToStr(datetimepicker2.Date)])); 
      adoquery1.Open; 
    end;