为什么EDIT1.TEXT:=DBComboBox1.TEXT;不好使呢?

NEEZA哪吒 2020-05-15 10:22:34

ADOQuery1.Close; //读取年级
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select top 100 * from Grade ';
ADOQuery1.Open;
DBCombobox1.Items.Clear;
While Not ADOQuery1.Eof do
begin
DBCombobox1.Items.Add(BrandQuery.FieldByName('GradeName').Asstring);
ADOQuery1.Next;
DBComboBox1.ItemIndex:=1;
End;//此时已经读取了年级的列表,也显示了当前的年级

edit1.text:=DBComboBox1.text;//将读取出来的年级赋值给EDIT1就不显示。

但是,在DBCombobox1处点击一下下拉,然后选择一个年级,在赋值给EDIT就好使。什么原因?
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2020-05-15
  • 打赏
  • 举报
回复
是不是你的结构有问题啊?是不是应该这样写:
begin
DBCombobox1.Items.Add(BrandQuery.FieldByName('GradeName').Asstring);
ADOQuery1.Next;
End;
DBComboBox1.ItemIndex:=1;
你原来的结构可能不运行上面这句代码吧?
这样就不用加语句了。
秋天之落叶 2020-05-15
  • 打赏
  • 举报
回复
DBComboBox我没用过,但和ComboBox应该差不多,你加一句试一试:
DBComboBox1.text:=DBComboBox1.Items.Strings[DBComboBox1.ItemIndex];
NEEZA哪吒 2020-05-15
  • 打赏
  • 举报
回复
引用 1 楼 秋天之落叶 的回复:
因为你的DBCombobox1循环赋值后,DBCombobox1.text还是空值
麻烦给个解决办法,新手一点不懂谢谢
秋天之落叶 2020-05-15
  • 打赏
  • 举报
回复
因为你的DBCombobox1循环赋值后,DBCombobox1.text还是空值
tanqth 2020-05-15
  • 打赏
  • 举报
回复
1、你代码里,又是BrandQuery.,又是ADOQuery1,我就怀疑你怎么能在DBCombobox1里显示出不同的年级; 2、DBCombobox1有显示如楼上所讲,只需要设置一下控件属性就OK了,不需要写一行代码; 3、你中想取到最终选择的值 edit1.text:=DBComboBox1.text,这样是可以的:edit1.text:=DBComboBox1.Items[DBComboBox1.ItemIndex];
  • 打赏
  • 举报
回复
楼主的用法是错的,你既然用了TDBComboBox,那只需要:
//...
ADOQuery.Open;
DBComboBox1.DataSource := ADOQuery1;
DBComboBox1.DataField := '字段名';
此时DBComboBox1.Items就是该字段的所有数据了
墨月羿 2020-05-15
  • 打赏
  • 举报
回复
edit1.text:=DBComboBox1.Items[1];

2,497

社区成员

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

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