数据库里面某表通过查询得到两列
ID   NAME
1   A
2   B
3   C
4   D
5   E 
6   F
我需要在DBComboBox上面显示出来NAME
但是当我选择 A的时候我要我需要得到 1 选择B时需要得到2的值 。如何实现?DBComboBox1可以实现吗

解决方案 »

  1.   

    用DBLookupComboBox ,设置KEYFIELD为ID  ,LISTFIELD为NAME ,LISTSOURCE指向表
      

  2.   

    用DBLookupComboBox ,设置KEYFIELD为ID  ,LISTFIELD为NAME ,LISTSOURCE指向表
      

  3.   

    用DBLookupComboBox ,设置KEYFIELD为ID  ,LISTFIELD为NAME ,LISTSOURCE指向表
      

  4.   

    这个简单啊,
    使用一个QUERY
    大体程序如下:
    DBComboBox的onchange事件中
    ss:string;
    query1.close;
    ss='selece * from tablex where name='+DBComboBox.text;
    query1.sql.add(ss);
    query1.open;
    edit1.text=query1.feildbyname('id').asInteger;{或者ASSTRING}
      

  5.   

    query1.feildbyname('id').asInteger 这么写是会报错的,类型不匹配 
      

  6.   

    呵呵 这样就效率太低了 每次我都需要查询数据库,并且的话 我的NAME列可能会出现名称重复值的。
      

  7.   

    昨晚后来没人回答 我就用下面的方法了var
      SpeciesName: string;    
        CKList:=TStringList.Create;
        ADOQCK.Open;
        while not ADOQCK.Eof do
        begin
          DBComboBox1.Items.Add(ADOQCK.FieldByname('Mix_apellation').AsString);
          CKList.Add(ADOQCK.FieldByname('ID').AsString);
          ADOQCK.Next;
        end;
      if DBComboBox1.Text='' then
            Exit;
      ShowMessage(CKList.Strings[DBComboBox1.ItemIndex]);
      

  8.   

    1-3楼的方法已经可以解决了
    设置KEYFIELD为ID  ,LISTFIELD为NAME ,LISTSOURCE指向表
    访问时
    ShowMessage(IntToStr(DBLookupComboBox1.KeyValue))