按条件查询时DBGrid1不显示数据,查询全部数据(不按条件时)DBGrid1可以显示查询结果!
大家帮帮忙!
procedure Tcxdy.suiButton1Click(Sender: TObject);
var
sfz:string;
dwm:string;
begin
if suiRadioButton3.Checked =true then begin
 with ADODataSet1 do
       ADODataSet1.Close;
       ADODataSet1.CommandText :='SELECT * from rygl';
       ADODataSet1.Open;
       end ;
if suiRadioButton2.Checked =true then begin
if  suiComboBox1.Text='' then showmessage('请选择要查询的单位名!!')
else begin
 with ADODataSet1 do
       ADODataSet1.Close;
       dwm:= suiComboBox1.Text ;
       ADODataSet1.CommandText :='SELECT * from rygl where danwei=:dwm order by 编号';
       ADODataSet1.Open;
       end ;
       end ;
if suiRadioButton1.Checked =true then begin
if  suiComboBox1.Text='' then showmessage('请输入要查询的身份证号码!!')
else begin
 with ADODataSet1 do
       ADODataSet1.Close;
       sfz:= suiComboBox1.Text ;
       ADODataSet1.CommandText :='SELECT * from rygl where shenfenzheng=:sfz order by 编号';
       ADODataSet1.Open;
end;
end;
end;

解决方案 »

  1.   

    dwm:= trim(suiComboBox1.Text) ;
      

  2.   

    ADODataSet1.CommandText :='SELECT * from rygl where danwei= '+quotedstr(dwm)+' order by 编号';ADODataSet1.CommandText :='SELECT * from rygl where shenfenzheng' +quotedstr(dwm)+' order by 编号';
      

  3.   

    第二句与句为:
    ADODataSet1.CommandText :='SELECT * from rygl where shenfenzheng=' +quotedstr(dwm)+' order by 编号';
    上面少了个'='号
      

  4.   

    dwm:= suiComboBox1.Text ;
       ADODataSet1.CommandText :='SELECT * from rygl where danwei=:dwm order by 编号';
       ADOQuery1.Parameters[0].Value:=dwm;   // 这里要加
    ...
       sfz:= suiComboBox1.Text ;
      ADODataSet1.CommandText :='SELECT * from rygl where shenfenzheng=:sfz order by 编号';
    ADODataSet1..Parameters[0].Value:=sfz;   // 同理