就是我有一个学生表,其中有个是id字段,其中的值有:111,112,123,124,211,213,224等等,假如我现在只要在TEdit控件中输入2,在listbox控件中就会显示211,213,224。我在输入一个1进去,listbox控件中就显示211,213
请高手指点,最好具体些

解决方案 »

  1.   

    先在内部做原始数据备份,然后TEdit控件中输入2条件,重新加载数据到Listbox就可以了
      

  2.   

    先在内部做原始数据备份,然后TEdit控件中输入2条件,重新加载数据到Listbox就可以了
      

  3.   

    添加一个数据库查询控件,查询控件里写入select * from 学生表 where id like '值%'(这个值就是你从edit控件输入的值),然后再用循环杷查询结果写入listbox控件就行了
      

  4.   

    建表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;interfaceuses
      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.
      

  5.   

    如果你的id是INT型就不好做,模糊查询的like只是针对字符型的。
    pengxuan(网虫先生) 的代码是对的,你要注意数据类型