请问combobox的列表框项目要从数据库中选出来,代码怎么写呢?(0分)

  • 主题发起人 主题发起人 慕荣冰靖
  • 开始时间 开始时间

慕荣冰靖

Unregistered / Unconfirmed
GUEST, unregistred user!
请问combobox的列表框项目要从数据库中选出来,代码怎么写呢?
 
跟从普通文件读出来没2样。
 
combobox的items属性中如果项目固定的话,直接在属性中可以写进去,但要从数据库中呢?
从普通文本读出是什么意思?
 
用query等组件取出数据,然后用一个循环将数据add进combobox的item内.
简单!
query.close;
query.sql.clear;
query.sql.add('select * from tablename');
query.open;

if query.recordcount>0 then begin
while not query.eof do
begin
combobox.itmes.add(query.fieldbyname('field').asstring;
query.next
end;
end;

大致就是如此了,可能我有写的有些小问题,不能直接套用!
 
在form创建时写
with ADODataSet do
begin
close;
commandtext := 'select DepName,DepNo from sys_org';
open;
while not eof do
begin
ComboBox1.Items.Add(Fields[0].asstring);
next;
end;
end;
ComboBox1.ItemIndex := 0;
 
combobox.items.add();
 
对了,谢谢!
 
再问个问题:
我像上述的做法做了,可是每当我将鼠标点到本窗体的其他文本框或者列表框上时,
DBCOMBOBOX所显示的值就变成空了,有什么办法解决呢?

我在这里设置DBCOMBOBOX.STYLE为csDROPDOWNLIST。若将其设置为csDROPDOWN,则根本就选
不中列表框所列的项目。
 
我知道了。
 
其实你可以采用DBLookupComboBox,简单方便
 
偶同意ls_hndd;
用DBLookupCombobox速度要快,尤其数据量大的时候;
不过用combobox时最好先combobox1.items.beginupdate;
...

while not eof do
begin
ComboBox1.Items.Add(Fields[0].asstring);
next;
end;
...
combobox1.items.endupdate;
 
谢谢上面的两位,可是用DBCOMBOBOX需要将所有可能取到的值都写在ITEMS中呀,这和
COMBOBOX有什么区别呢?仅仅是可以修改数据库吗?
 
晕~~~~~~~~~~~~~~~~
 
我帮你问各位几个问题
1、如何在下拉选项中加入多个数据列,而且数据列的竖行排列要对齐
2、如何实现按输入的数值递增排序(按照'%输入值%'方式,默认的好像是'输入值%'方式)
 
后退
顶部