各位好:
程序combox要绑定显示“年级数据表userclass”中的“年级名称classname”所有信息供选择,现在绑定显示全部年级名称的的问题已经解决了。
但是,在存入到学生数据表中时,我选中了比如“二年级”,但是我不想把“二年级”这个信息存入到学生表中,只要把“二年级”对应的编号字段“classid=a2”存入到“学生信息表的classid字段”中
请问如何搞?注意: 我现在只能通过 combox.itemindex 获取当前选中值的索引号,其实这是错的。
程序combox要绑定显示“年级数据表userclass”中的“年级名称classname”所有信息供选择,现在绑定显示全部年级名称的的问题已经解决了。
但是,在存入到学生数据表中时,我选中了比如“二年级”,但是我不想把“二年级”这个信息存入到学生表中,只要把“二年级”对应的编号字段“classid=a2”存入到“学生信息表的classid字段”中
请问如何搞?注意: 我现在只能通过 combox.itemindex 获取当前选中值的索引号,其实这是错的。
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;
增加一个属性 property IDList:Tstrings read FIDList write FIDList;绑定名称的同时绑定到IDList,这个用sql语句很好完成
然后提取Strings[X]的同时也提取了IDList.strings[X]
BH+' '+MC
然后存时,用COPY函数读出COMBOBOX1.TEXT中的编号即可.
1、复杂的方法:用下拉框控件的 Items.AddObject方法即可搞定!但真正做起来麻烦,就像网友duck04551
写的那样;
2、简单的方法:
既然你要连接数据库,为什么你不用数据敏感控件,你可以用DBLookupComboBox控件,属性里面可以设置的,keyfield和listfield分别设置为你的ID号和名称即可
lookup是最简单直接的方式。下拉框数据数量过多的话,考虑单独的检索界面和代码罢
先自己定义一个类,类里面有两个变量:班级名称 及 班级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;