请问怎么控制在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,其他的就不显示出来了,
请问在我原来的基础上要怎么修改好?谢谢

解决方案 »

  1.   

    补充:Edit1输入的内容是不定的,就要在ListBox1中显示Edit1输入的内容为开头的所有记录
      

  2.   

    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';把红色部分去掉试试。
      

  3.   

    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';  like 前面的%不要 
      

  4.   

    查询语言里面用like语句,可以去查查sql方面的资料
      

  5.   

    查询语言里面用like语句,可以去查查sql方面的资料
      

  6.   

    用like就OK啦,在网上查一下sql这方面的资料
      

  7.   

    // 该方法适用数据量不是很大的情况
    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;
      

  8.   

    ADOQuery1.SQL.Text:='select zhi from cr where leixing like ''%'
      +IfThen(RadioButton1.Checked, '', IfThen(RadioButton2.Checked, '国产', '进口'))+'%'' 去掉第一个%
      

  9.   

    前面的%不要,类似这样格式:
    select * from t where (a like 'A%') or (b like 'A%') ...
      

  10.   

    like 后面 %A 表示 A结尾A% 表示 A开头
    %A% 表示有A就行