procedure TTSCX_Form.Button1Click(Sender: TObject);
var sqlstr:string;
begin
try
listView1.Items.Clear;
edit1.SetFocus;
if radioButton1.Checked then
begin
sqlstr:='select * from tsb ';
end ;
if sm_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入书名,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where (sm='''+edit1.Text+''')';
end;
if code_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入书号,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where (code='''+edit1.Text+''')';
end;
if pree_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入出版社,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where(pree='''+edit1.Text+''')';
end;
if author_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入作者,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where(author='''+edit1.text+''')';
end; with adoquery1 do
begin
SQL.Clear;
SQL.Add(sqlstr);
open ;
label1.Caption:='共'+intToStr(recordcount)+'记录'; while not eof do
begin
with listView1.Items.Add do
begin
caption:=fieldByName('code').AsString;
subitems.Add(FieldByName('sm').AsString);
subitems.Add(FieldByName('author').AsString);
subitems.Add(FieldByName('pree').AsString);
subitems.Add(FieldByName('outtime').AsString);
subitems.Add(FieldByName('cost').AsString);
subitems.Add(FieldByName('memo').AsString);
end;
next;
end;
close;
end;
except
messageDlg('系统操作失败!',mtError,[mbOk],0);
end;end;end.
为何以上代码只能作全部查询与一个以期书号为条件,其他条件不能查询,请指教?本人用相同方法写过都可以期,反以今次就不行
var sqlstr:string;
begin
try
listView1.Items.Clear;
edit1.SetFocus;
if radioButton1.Checked then
begin
sqlstr:='select * from tsb ';
end ;
if sm_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入书名,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where (sm='''+edit1.Text+''')';
end;
if code_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入书号,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where (code='''+edit1.Text+''')';
end;
if pree_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入出版社,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where(pree='''+edit1.Text+''')';
end;
if author_rad.Checked then
begin
if edit1.Text=' ' then
messageDlg('请输入作者,再查询!',mtError,[mbOk],0)
else
sqlstr:='select * from tsb where(author='''+edit1.text+''')';
end; with adoquery1 do
begin
SQL.Clear;
SQL.Add(sqlstr);
open ;
label1.Caption:='共'+intToStr(recordcount)+'记录'; while not eof do
begin
with listView1.Items.Add do
begin
caption:=fieldByName('code').AsString;
subitems.Add(FieldByName('sm').AsString);
subitems.Add(FieldByName('author').AsString);
subitems.Add(FieldByName('pree').AsString);
subitems.Add(FieldByName('outtime').AsString);
subitems.Add(FieldByName('cost').AsString);
subitems.Add(FieldByName('memo').AsString);
end;
next;
end;
close;
end;
except
messageDlg('系统操作失败!',mtError,[mbOk],0);
end;end;end.
为何以上代码只能作全部查询与一个以期书号为条件,其他条件不能查询,请指教?本人用相同方法写过都可以期,反以今次就不行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货