各位好:
    程序combox要绑定显示“年级数据表userclass”中的“年级名称classname”所有信息供选择,现在绑定显示全部年级名称的的问题已经解决了。
    但是,在存入到学生数据表中时,我选中了比如“二年级”,但是我不想把“二年级”这个信息存入到学生表中,只要把“二年级”对应的编号字段“classid=a2”存入到“学生信息表的classid字段”中
    请问如何搞?
注意: 我现在只能通过 combox.itemindex 获取当前选中值的索引号,其实这是错的。

解决方案 »

  1.   

    先自己定义一个类,类里面有两个变量:班级名称 及 班级ID
    TMyObject =class
        ClassName :string[100];
        ClassID   :Integer;
      end;插入对象:
    LMyObject :TMyObject;
    begin
    end;
    LMyObject := TMyObject.Create;
    LMyObject.ClassName := 'ClassName' + IntToStr(i);
    LMyObject.ClassID   := 100 + i;
    ComboBox1.Items.AddObject('ClassName' + IntToStr(i), LMyObject);取出对象:
    Edit1.Text:= TMyObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).ClassName;
      

  2.   

    大哥,到底用什么比较好? dbcombobox是什么?
      

  3.   

    最能重用的方式是继承一个TcombBox为TIDCombBox
    增加一个属性 property IDList:Tstrings read FIDList write FIDList;绑定名称的同时绑定到IDList,这个用sql语句很好完成
    然后提取Strings[X]的同时也提取了IDList.strings[X]
      

  4.   

    我是这样的,绑定是是用
    BH+' '+MC
    然后存时,用COPY函数读出COMBOBOX1.TEXT中的编号即可.
      

  5.   

    这个很好办的,用下拉框控件的 Items.AddObject方法即可搞定!
      

  6.   

    我再次回复一下:
    1、复杂的方法:用下拉框控件的 Items.AddObject方法即可搞定!但真正做起来麻烦,就像网友duck04551
    写的那样;
    2、简单的方法:
       既然你要连接数据库,为什么你不用数据敏感控件,你可以用DBLookupComboBox控件,属性里面可以设置的,keyfield和listfield分别设置为你的ID号和名称即可
      

  7.   

    班级的问题用addObject?真TMD服了,实践里面用过吗?考虑过后台读写数据库有多少代码?
    lookup是最简单直接的方式。下拉框数据数量过多的话,考虑单独的检索界面和代码罢
      

  8.   

    我有一个笨办法,就是在自己的程序里根据ItemIndex的值计算要保存的字段的值
      

  9.   

    ItemIndex的值,计算出保存字段的值,这个办法,就是我说过的死办法了,就是取出数,再到对应的表中找到该值对应的字段值了。
      

  10.   

    可以在combox的下拉事件中进行转换,然后再将转换后的结果存入数据库。
      

  11.   

    如何转换呢,兄弟?本身COMBOX列表中各项的值,就是不确定的。
      

  12.   

    換成imagecombobox或直接保存它的itemindex...
      

  13.   

    不用找了,这是正解:
    先自己定义一个类,类里面有两个变量:班级名称 及 班级ID
    TMyObject =class
      ClassName :string[100];
      ClassID :Integer;
      end;插入对象:
    LMyObject :TMyObject;
    begin
    end;
    LMyObject := TMyObject.Create;
    LMyObject.ClassName := 'ClassName' + IntToStr(i);
    LMyObject.ClassID := 100 + i;
    ComboBox1.Items.AddObject('ClassName' + IntToStr(i), LMyObject);取出对象:
    Edit1.Text:= TMyObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).ClassName;