我想根据多个条件 得到一个结果!大家如果有好的代码和意见 请告诉我!谢谢了大家!
Var
selectid,selectname,selectsex,selectaddress:string;
begin
if trim(combobox1.Text) <>'' then
begin
selectid:='and ID='''+trim(combobox1.Text)+'''';
end
else
selectid:=''; if trim(combobox2.Text) <>'' then
begin
selectname:='and NAME='''+trim(combobox2.Text)+'''';
end
else
selectname:=''; if trim(combobox3.Text) <>'' then
begin
selectsex:='and sex='''+trim(combobox3.Text)+'''';
end
else
selectsex:='';
selectaddress:=selectid+selectname+selectsex;
query1.Close;
query1.sql.clear;
query1.sql.add('select * ');
query1.SQL.Add('from jjz1.db ');
query1.SQL.Add('where 1=1') ;//
query1.SQL.Add(selectid+selectname+selectsex);//这是多个条件 我想根据这些条件得到一个结果ADDRESS
query1.Open;
Memo1.Lines.Clear;
Memo1.Text:= query1.FieldByName('address').AsString;//为什么它不显示呢!
Var
selectid,selectname,selectsex,selectaddress:string;
begin
if trim(combobox1.Text) <>'' then
begin
selectid:='and ID='''+trim(combobox1.Text)+'''';
end
else
selectid:=''; if trim(combobox2.Text) <>'' then
begin
selectname:='and NAME='''+trim(combobox2.Text)+'''';
end
else
selectname:=''; if trim(combobox3.Text) <>'' then
begin
selectsex:='and sex='''+trim(combobox3.Text)+'''';
end
else
selectsex:='';
selectaddress:=selectid+selectname+selectsex;
query1.Close;
query1.sql.clear;
query1.sql.add('select * ');
query1.SQL.Add('from jjz1.db ');
query1.SQL.Add('where 1=1') ;//
query1.SQL.Add(selectid+selectname+selectsex);//这是多个条件 我想根据这些条件得到一个结果ADDRESS
query1.Open;
Memo1.Lines.Clear;
Memo1.Text:= query1.FieldByName('address').AsString;//为什么它不显示呢!
解决方案 »
- 调用DLL中的函数.之前问了没有答.
- 如何快速知道某个文本文件的行数
- 关于邮件乱字符的问题 (utf-8,big5,gb2312) 在线等待
- delphi获取打印任务----在线等,请大家帮帮
- delphi8有几版.与delphi6有什么区别.
- 这样的问题怎么每人会呀?!忍痛100分
- 将文本文件中的","去掉,代码如何写?
- 请问:为何工程执行是出现"Insufficient memory for this operation"的错误提示?
- 赶问各位老大如何在delphi下画各种线型如铁路
- 我已经问了第三次了,难道真没有人会???(在VC中这个问题只是两三行代码就可以解决的),Delphi没有VC方便?
- ***小弟这段代码为什么会内存一直增加啊?急啊!!!!!!*****
- 想得到当前时间,包括几点几十分
var
strWhere:string;
begin
strWhere:= '';
if trim(combobox1.Text) <>'' then
strWhere:= ' and ID='+trim(combobox1.Text);
if trim(combobox2.Text) <>'' then
strWhere:= strWhere+' and NAME='''+trim(combobox2.Text)+'''';
if trim(combobox3.Text) <>'' then
strWhere:= strWhere+' and sex='''+trim(combobox3.Text)+''''; query1.Close;
query1.sql.clear;
query1.sql.add('select * ');
query1.SQL.Add('from jjz1.db ');
query1.SQL.Add('where 1=1') ;//
query1.SQL.Add(strWhere);//这是多个条件 我想根据这些条件得到一个结果ADDRESS
query1.Open;
Memo1.Lines.Clear;
Memo1.Text:= query1.FieldByName('address').AsString;
如果没有结果,可能有两个原因:
1、确实没有符合条件的记录;
2、SQL语句错误,请注意对数据库操作时的字段类型.通常,ID字段为数字型,所以,故作聪明的将源代码改为:strWhere:= ' and ID='+trim(combobox1.Text);,其它没变。希望能解决你的问题。
strWhere:string;
begin
strWhere:= '';
if trim(combobox1.Text) <>'' then
strWhere:= ' and ID='+trim(combobox1.Text);
if trim(combobox2.Text) <>'' then
strWhere:= strWhere+' and NAME='+quotedstr(trim(combobox2.Text));
if trim(combobox3.Text) <>'' then
strWhere:= strWhere+' and sex='+quotedstr(trim(combobox3.Text)); query1.Close;
query1.sql.clear;
query1.sql.add('select * ');
query1.SQL.Add('from jjz1.db ');
query1.SQL.Add('where 1=1') ;//
query1.SQL.Add(strWhere);//这是多个条件 我想根据这些条件得到一个结果ADDRESS
query1.Open;
Memo1.Lines.Clear;
Memo1.Text:= query1.FieldByName('address').AsString;
///
这样我觉得好看点