Delphi7中 Combox绑定读取问题。

混世罗汉 2011-03-26 09:53:12
各位好:
程序combox要绑定显示“年级数据表userclass”中的“年级名称classname”所有信息供选择,现在绑定显示全部年级名称的的问题已经解决了。
但是,在存入到学生数据表中时,我选中了比如“二年级”,但是我不想把“二年级”这个信息存入到学生表中,只要把“二年级”对应的编号字段“classid=a2”存入到“学生信息表的classid字段”中
请问如何搞?


注意: 我现在只能通过 combox.itemindex 获取当前选中值的索引号,其实这是错的。
...全文
337 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
混世罗汉 2011-04-02
  • 打赏
  • 举报
回复
上面代码,需要绑定数据库吗?
xpf7719213 2011-04-01
  • 打赏
  • 举报
回复
不用找了,这是正解:
先自己定义一个类,类里面有两个变量:班级名称 及 班级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;
混世罗汉 2011-04-01
  • 打赏
  • 举报
回复
再顶最后一下了,就结贴了。 谁有现存的代码,贴 上来看看。谢谢
iamduo 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 last_wolf1860 的回复:]

班级的问题用addObject?真TMD服了,实践里面用过吗?考虑过后台读写数据库有多少代码?
lookup是最简单直接的方式。下拉框数据数量过多的话,考虑单独的检索界面和代码罢
[/Quote]
+1
kye_jufei 2011-03-30
  • 打赏
  • 举报
回复
換成imagecombobox或直接保存它的itemindex...
混世罗汉 2011-03-29
  • 打赏
  • 举报
回复
如何转换呢,兄弟?本身COMBOX列表中各项的值,就是不确定的。
shijies 2011-03-29
  • 打赏
  • 举报
回复
可以在combox的下拉事件中进行转换,然后再将转换后的结果存入数据库。
混世罗汉 2011-03-29
  • 打赏
  • 举报
回复
ItemIndex的值,计算出保存字段的值,这个办法,就是我说过的死办法了,就是取出数,再到对应的表中找到该值对应的字段值了。
shoufeng666 2011-03-29
  • 打赏
  • 举报
回复
我有一个笨办法,就是在自己的程序里根据ItemIndex的值计算要保存的字段的值
last_wolf1860 2011-03-29
  • 打赏
  • 举报
回复
班级的问题用addObject?真TMD服了,实践里面用过吗?考虑过后台读写数据库有多少代码?
lookup是最简单直接的方式。下拉框数据数量过多的话,考虑单独的检索界面和代码罢
yongerman 2011-03-29
  • 打赏
  • 举报
回复
我再次回复一下:
1、复杂的方法:用下拉框控件的 Items.AddObject方法即可搞定!但真正做起来麻烦,就像网友duck04551
写的那样;
2、简单的方法:
既然你要连接数据库,为什么你不用数据敏感控件,你可以用DBLookupComboBox控件,属性里面可以设置的,keyfield和listfield分别设置为你的ID号和名称即可
yongerman 2011-03-29
  • 打赏
  • 举报
回复
这个很好办的,用下拉框控件的 Items.AddObject方法即可搞定!
混世罗汉 2011-03-28
  • 打赏
  • 举报
回复
还有没有更方法的办法?
whxxr 2011-03-27
  • 打赏
  • 举报
回复
我是这样的,绑定是是用
BH+' '+MC
然后存时,用COPY函数读出COMBOBOX1.TEXT中的编号即可.
混世罗汉 2011-03-27
  • 打赏
  • 举报
回复
大侠们,有没有现存的代码可以参考?
vivai2010 2011-03-26
  • 打赏
  • 举报
回复
用dbcombobox
taste品味 2011-03-26
  • 打赏
  • 举报
回复
先自己定义一个类,类里面有两个变量:班级名称 及 班级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;
混世罗汉 2011-03-26
  • 打赏
  • 举报
回复
有个死办法,就是 最后获取选中值后, 然后再到数据表中再比对一下,再读取该值对应的编号,但该方法也太死了一点,。
混世罗汉 2011-03-26
  • 打赏
  • 举报
回复
有谁有现存的,以前自己写的代码段吗,能否借看一下,谢谢啊。

我是新人,请各人不吝赐教
混世罗汉 2011-03-26
  • 打赏
  • 举报
回复
tstringlist如何用?
加载更多回复(3)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧