adoquery,adoconnection,datasource分别连接成功
使用两个combobox,一个是班级名称查询的,一个是按性别查询查询;
如果用户选择班级查询,dbgrid会显示班级信息,再按性别查询 结果为该班级的所有男生(女生)信息;
反之,先按性别查询,会出现所有的男生(女生)的信息,再按班级查询,在显示的信息中进行筛选,
求解求解
使用两个combobox,一个是班级名称查询的,一个是按性别查询查询;
如果用户选择班级查询,dbgrid会显示班级信息,再按性别查询 结果为该班级的所有男生(女生)信息;
反之,先按性别查询,会出现所有的男生(女生)的信息,再按班级查询,在显示的信息中进行筛选,
求解求解
if (trim(ComboBox1.Text)='All') and (trim(ComboBox2.Text)='All') then
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('select * from TableName'); //查所有记录
ADOQuery.Open;
end
else if trim(ComboBox1.Text)='All' then
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(Format('select * from TableName where 性别=''%s''',[trim(ComboBox2.Txext)])); //查所有班级的男或女生记录。
ADOQuery.Open;
end
else if trim(ComboBox2.Text)='All' then
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(Format('select * from TableName where 班级=''%s''',[trim(ComboBox1.Txext)])); //查一个班级的所有记录
ADOQuery.Open;
end
else
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(Format('select * from TableName where 班级=''%s'' and 性别=''%s''',[trim(ComboBox1.Txext),trim(ComboBox2.Text)]));//查某个班级的男生或女生记录。
ADOQuery.Open;
end;
end;
var
sqlstr:string;
begin
if (combobox1.text='')and(combobox2.text='') then
begin
showmessage('请选择查询条件')
exit;
end;
sqlstr := 'select * from table where (1=1)';
if combox1.text<>'' then
sqlstr := sqlstr +' and bjname=:bjname';
if combox2.text<>'' then
sqlstr := sqlstr +' and xb=:xb';
with adoquery1 do
begin
close;
sql.clear;
sql.add(sqlstr);
if combox1.text<>'' then
parameter.parambyname('bjname').value := combobox1.text;
if combobox2.text<>'' then
parameter.parambyname('xb').value := combobox2.text;
open;
end;
end;
再在DLEPHI编程中以字符串方式传递给变量让ADO控件去执行这
些语句,并引用其显示数据的控件显示出来就可以了