请问怎么控制在edit1中输入一个字符,就能查找出数据表中某一字段记录第一个字符符合输入字符的记录?
我原来是这样写的:
ADOQuery1.SQL.Text:='select zhi from cr where leixing like ''%'
+IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+'%'' and zhi like ''%'+StringReplace(Edit1.Text, '''', '''''', [rfReplaceAll, rfIgnoreCase])+'%'' group by zhi order by zhi';
ADOQuery1.Open;
try
while not ADOQuery1.Eof do
begin
ListBox1.Items.Add(VarToStr(ADOQuery1['zhi']));
ADOQuery1.Next;
end;
finally
ADOConnection1.Close;
end;
这样,我在Edit1中输入A,在ListBox1中会显示所以包含有A的所有记录,比如:
123A
56A7899A
A12345
A5566
但我要的效果是在Edit1中输入A,在ListBox1中会显示所以包含以A开头的所有记录
A12345
A5566,其他的就不显示出来了,
请问在我原来的基础上要怎么修改好?谢谢
我原来是这样写的:
ADOQuery1.SQL.Text:='select zhi from cr where leixing like ''%'
+IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+'%'' and zhi like ''%'+StringReplace(Edit1.Text, '''', '''''', [rfReplaceAll, rfIgnoreCase])+'%'' group by zhi order by zhi';
ADOQuery1.Open;
try
while not ADOQuery1.Eof do
begin
ListBox1.Items.Add(VarToStr(ADOQuery1['zhi']));
ADOQuery1.Next;
end;
finally
ADOConnection1.Close;
end;
这样,我在Edit1中输入A,在ListBox1中会显示所以包含有A的所有记录,比如:
123A
56A7899A
A12345
A5566
但我要的效果是在Edit1中输入A,在ListBox1中会显示所以包含以A开头的所有记录
A12345
A5566,其他的就不显示出来了,
请问在我原来的基础上要怎么修改好?谢谢
解决方案 »
- 360rp.exe 这个进程结束不掉
- !!!BS CSDN!!! 庆祝DELPHI2010发布!
- ADOConnection 一次只能执行一条 SQL 语句,有没有解决办法?
- Error - Load MIDAS.DLL
- 数据转换的问题
- 在Delphi中用什么设计报表最好(包括第3方提供)
- 大家的D7安装盘都是几CD啊
- 有谁知道亚软http://www.asiasoft.com.cn的eSalesPro用的是什么控件,100分
- 出 500 分 外加人民币 200 元购买一份源程序(代理服务器软件,要求能分别让各机在不同时间内限上网,最好有日志记录)3/x
- NMPOP3控件的问题,
- 能将c++Builder封装的dll再封装成dll吗?
- List index out of bounds(0)
+IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+'%'' and zhi like ''%'+StringReplace(Edit1.Text, '''', '''''', [rfReplaceAll, rfIgnoreCase])+'%'' group by zhi order by zhi';把红色部分去掉试试。
+IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+''' and zhi like ''%'+StringReplace(Edit1.Text, '''', '''''', [rfReplaceAll, rfIgnoreCase])+'%'' group by zhi order by zhi'; like 前面的%不要
procedure TForm1.Edit1Change(Sender: TObject);
const s = ' select 查找字段1,查找字段2 from 表 where 比较字段 like ''%S%%'' ';
var vss:String;
begin
vss := StringReplace(edit1.text,'被替换内容','替换后内容');
vss := format(s,[vss]);
ADOQuery1.Close;
adoQuery1.sql.text := vss;
try
adoQuery1.open;
while not ADOQuery1.Eof do
begin
// ListBox1.add(adoquery1.fieldbyname('显示内容字段名').asstring;
ADOQuery1.Next;
end;
finally
ADOQuery1.Close;
ADOConnection1.Close;
end;
end;
+IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+'%'' 去掉第一个%
select * from t where (a like 'A%') or (b like 'A%') ...
%A% 表示有A就行