下面代码怎么改才能更简单些啊,比如用各种条件或循环语句什么的?procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.sql.clear;
if combobox1.ItemIndex=0 then
begin
adoquery1.SQL.Add('select * from users where name='+quotedstr(edit1.Text));
end;
if combobox1.ItemIndex=1 then
begin
adoquery1.SQL.Add('select * from users where city='+quotedstr(edit1.Text));
end;
if combobox1.ItemIndex=2 then
begin
adoquery1.SQL.Add('select * from users where age='+quotedstr(edit1.Text));
end;
adoquery1.Open;end;

解决方案 »

  1.   

    var
       strs:Array[0..2] of string;
    begin
       strs[0]:='name';
       strs[1]:='city';
       strs[2]:='age';
       adoquery1.sql.clear;
       adoquery1.sql.text:='select * from users where '+strs[combobox1.ItemIndex]+'='+quotedstr(edit1.Text));
    .................
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      sql : String;
    begin  case Combobox.Itemindex of 
        0: sql := ' where name='+quotedstr(edit1.Text); 
        1: sql := ' where city='+quotedstr(edit1.Text);
        2: sql := ' where age='+quotedstr(edit1.Text);
      end;
      adoquery1.sql.clear;
      adoQuery1.sql.text := 'select * from users '+sql;
      adoquery1.Open;end;
      

  3.   


    procedure TForm1.Button1Click(Sender: TObject);
      procedure InitCombobox;
      begin
        ComboBox1.Items.Add('name');
        ComboBox1.Items.Add('city');
        ComboBox1.Items.Add('age');
      end;
    var
      sSql:string;
    begin
      InitCombobox;
      sSql := 'select * from users where ' + ComboBox1.Text + ' = ' + QuotedStr(Edit1.Text);
      adoquery1.Close;
      adoquery1.SQL.Text := sSql;
      adoquery1.Open;
    end;