问题是这样的: 数据库表中有: name ,sex, old !
     现在我想在一个form上放一个combobox1;并且combobox1.items里放的是数据库表中对应的姓名,性别,年龄
     当我查询数据的时候,我按combobox1中选中的字段来过滤,例如:我选择“姓名”
那么我过滤时候就按"name"来过滤。     有什么办法处理吗??给一点代码提示吧,谢谢前辈!呵呵!!!!

解决方案 »

  1.   

    老大,查查书吧!不能什么问题都问别人呀,所有的DELPHI入门书上都会讲这个。
      

  2.   

    参考以下:
    procedure TFCC1.cmd_queryClick(Sender: TObject);
    begin
     sql_str1:=' Where 1=1 ';
     if Cb1.State=cbchecked then
       begin
         sql_str1:=sql_str1+'and reg_date>="'+datetostr(f_date.Date)+'" and reg_date <="' +datetostr(e_date.Date)+'" ';
       end;
      if bill_f.Text <>'' then
        begin
          sql_str1:=sql_str1+'and bill_no>="'+ bill_f.text+'" and bill_no<="'+bill_e.Text +'" ';
        end;
      if code_f.Text <>'' then
        begin
          sql_str1:=sql_str1+'and item_code>="'+ code_f.text+'" and item_code<="'+code_e.Text +'" ';
        end;
     Query_flag:='GS';
     Grid1_fresh;
    end;
      

  3.   

    方法1:
    用combobox.items[i].data保存字段名称
    方法2:
    用帧来做,田间一个tstringlist
      

  4.   

    if combox.text<>'姓名' then 
    select* from where name=姓名
    具体代码自己写了
      

  5.   

    1、首先建立汉字与数据库中字段的对应的关系,例如:‘姓名’这两个汉字对应数据库中的‘name’字段,这样当用户选中‘姓名’汉字时你才知道是以'name'字段为查询条件或在程序中写死这种对应的关系,不过这样不够灵活
    2、下面是生成一个动态SQL语句的过程分为两部分
    第一部分:
    sSele:=select * from 表名 where 1=1
    第二部分为动态条件部分
    if trim(combobox1.text)='姓名' then
      swhere:=' and name='+trim(trim(combobox1.text));
    if trim(combobox1.text)='性别' then
      swhere:=' and sex='+trim(combobox1.text);
    if trim(combobox1.text)='年龄' then
      swhere:=' and age='+StrToint(trim(combobox1.text));
    下面将两部分合起来就可以
    SQL:=sSele+swhere;
    再执行SQL语句就可,这也是在开发数据库生成动态SQL语句的一般方法。
    如果成功,把分给我呀。哈哈哈哈!!!
      

  6.   

    //获得静态数据
    query2.SQL.Clear;
        query2.SQL.Add('select distinct zldm,zlmc from xxsjk..zlcsb where getdate() between yxqsrq and yxjzrq');
        query2.Open;
        query2.First;
        Edit2.Text:='';
        Combobox1.items.Clear;
        while not (query2.Eof) do
        begin
            if Edit2.Text='' then
         Edit2.Text:=query2.fieldbyname('zlmc').asstring
    else         
         Edit2.Text:=Edit2.Text+' ; '+query2.fieldbyname('zlmc').asstring;
            Combobox1.Items.Add(query2.fieldbyname('zlmc').asstring);
            query2.Next;
        end;
        Combobox1.ItemIndex:=0;
    **********************************************
       等我有钱了我就站到天安门广场挨个给人发钱
    **********************************************
      

  7.   

    楼上的果然是动态的SQL口合口合口合~~~~~~其实这是最实用的好理解也好写很时候我们财袅的!