如何把模糊查询的结果显示在Listbox上
就是我有一个学生表,其中有个是id字段,其中的值有:111,112,123,124,211,213,224等等,假如我现在只要在TEdit控件中输入2,在listbox控件中就会显示211,213,224。我在输入一个1进去,listbox控件中就显示211,213
请高手指点,最好具体些
[解决办法]
建表SQL语句
CREATE TABLE t1(id INT,sname VARCHAR(10))
INSERT INTO t1
SELECT 111, '张明 '
UNION ALL
SELECT 112, '李华 '
UNION ALL
SELECT 123, '张三 '
UNION ALL
SELECT 124, '李四 '
UNION ALL
SELECT 211, '王五 '
UNION ALL
SELECT 213, '赵六 '
UNION ALL
SELECT 224, '小三 '
Delphi代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Edit1: TEdit;
ListBox1: TListBox;
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Trim(Edit1.Text)= ' ' then Exit;
try
StrToInt(Edit1.Text);
except
ShowMessage( '请输入整数 ');
end;
ADOQuery1.Close;
ADOQuery1.SQL.Text:= 'SELECT * FROM t1 WHERE id like '+QuotedStr(Edit1.Text+ '% ');
ADOQuery1.Open;
if ADOQuery1.IsEmpty then
begin
ShowMessage( '没有找到 ');
Exit;
end;
ListBox1.Clear;
while not ADOQuery1.Eof do
begin
ListBox1.Items.Add(ADOQuery1.FieldByName( 'id ').AsString);
ADOQuery1.Next;
end;
end;
end.