本人用SQL语句,加上IF的判断条件来做的。在多个combobox中选择选项,以此(所选的项)做为条件,然后通过单击按钮来实现符合多个条件的或一个条件的查询,结果符合条件的记录显示在DBGrid中。
但在做当其中任何一个或多个combobox中为空值时(就是没有做出选择时),如何让SQL语句来实现:不去读取该空值而继续判断已经做出选择的combobox,从而显示出符合条件的记录.
或是如果你有好的方法来完成多个条件的查询,也劳架你帮帮我,好吗?谢谢!!!!
但在做当其中任何一个或多个combobox中为空值时(就是没有做出选择时),如何让SQL语句来实现:不去读取该空值而继续判断已经做出选择的combobox,从而显示出符合条件的记录.
或是如果你有好的方法来完成多个条件的查询,也劳架你帮帮我,好吗?谢谢!!!!
sqlStr := 'select * from tablename where 1=1 ';
if combobox1.itemindex <> -1 then
sqlStr := sqlStr + ' and a='''+combobox1.items[combobox1.itemindex]+'''';
if combobox2.itemindex <> -1 then
sqlStr := sqlStr + ' and b='''+combobox2.items[combobox2.itemindex]+'''';
.................
if comboboxN.itemindex <> -1 then
sqlStr := sqlStr + ' and N='''+comboboxN.items[comboboxN.itemindex]+'''';
Query1.Close;
Query1.Sql.Text := sqlStr;
Query1.Open;
Begin
Close;
Sql.Clear;
Sql.Add('Select * From TableName Where Names=''大虫子''');
IF Combobox1.Text<>'' then
Sql.Add('And Params1='''+Combobox1.Text+'''');
IF Combobox2.Text<>'' then
Sql.Add('And Params2='''+Combobox2.Text+'''');
IF Combobox3.Text<>'' then
Sql.Add('And Params3='''+Combobox3.Text+'''');
IF Combobox4.Text<>'' then
Sql.Add('And Params4='''+Combobox4.Text+'''');
.......
open;
End;