编程论坛's Archiver

guang2356447 发表于 2007-10-10 23:57

新问题 怎么用combobox控件读取数据库里的内容?

<P>我在做一个下拉菜单使用combobox控件<BR>里面内容我想从数据库里读取<BR>做过的 指点指点<BR>感谢呵呵</P>

guang2356447 发表于 2007-10-11 09:21

也没个帮忙的 <BR>还好我找到拉<BR>发来公享<BR>combobox1.Clear;<BR>adoquery1.Close;<BR>adoquery1.SQL.Clear;<BR>adoquery1.SQL.Text:='select * from dgyw';<BR>adoquery1.Open;<BR>combobox1.Items.Clear;<BR>while not adoquery1.Eof do<BR>begin<BR>combobox1.Items.Add(adoquery1.FieldValues['name']);<BR>adoquery1.Next;<BR>end;<BR><BR>现在问下在一个页面用多个adoquery打开多个表影响速度吗

sky_yang_sky 发表于 2007-10-11 09:46

<P>那肯定會了。只要你的數據不是太大影響不會很明顯</P>

volte 发表于 2007-10-11 12:39

<P>你为什么要用adoquery打开多个表。<BR>不能一次取完吗?<BR>而且你这个完全是一种数据显示,<BR>对于做软件来说意义不大,<BR><BR>怎么不考虑用面向对象去封装一下数据集,。</P>

guang2356447 发表于 2007-10-11 13:24

回复:(volte)你为什么要用adoquery打开多个表。不能...

面向对象去封装一下数据集<BR>怎么实现啊<BR><BR><BR>我面向对象理解的不够<BR><BR>有什么资料?

缘吇弹 发表于 2007-10-11 22:16

<P>SOSO就有很多资料.</P>

guang2356447 发表于 2007-10-11 22:22

<P>感谢大家<BR>下面是个3级下拉菜单    都是从数据库读取内容的<BR>我已经有代码拉  不过别人帮忙做的   <BR>那位高手能帮忙注释下什么意思<BR>我的表ywzl   字段有yjl  ejl   sjl<BR>   业务种类    一级类  2级类   3级类<BR>我注释了一部分  还有的不知道<BR>procedure Tts.LoadDataToCombox(Target:TComboBox;DataColumn:String;Condition:String='');<BR>begin<BR>  if Target=nil then Exit;<BR>  if DataColumn&lt;='' then Exit;  //不知道什么意思<BR>  with ADOQuery1 do<BR>  begin<BR>    Close;           //distinct 表示无重复显示字段内容<BR>    SQL.Text:='SELECT DISTINCT '+DataColumn+' FROM ywzl WHERE '+DataColumn+' IS NOT NULL '+IfThen((Condition&lt;=''),'',' AND '+Condition);  // 不知道什么意思<BR>    Open;   <BR>    Target.Items.Clear;<BR>    while not Eof do<BR>    begin<BR>      Target.Items.Add(Fields.Fields[0].AsString);//不知道什么意思<BR>      Next;<BR>    end;<BR>    Close;<BR>  end;<BR>  Target.Visible:=(Target.Items.Count&gt;0); //透明取决于combobox里面的内容大于0则返回true<BR>end;</P>
<P><BR>procedure Tts.FormCreate(Sender: TObject);<BR>begin<BR>  LoadDataToCombox(ComboBox4,'yjl');      //combobox4中的内容显示  字段为yjl的内容   1级类<BR>end;</P>
<P>procedure Tts.ComboBox4Change(Sender: TObject);<BR>begin<BR>  LoadDataToCombox(ComboBox5,'ejl','yjl='''+ComboBox4.Text+''''); //combobox5中的内容显示 字段为ejl的内容  2级类  条件是   // 条件不知道是什么<BR>  ComboBox6.Visible:=False;<BR>end;</P>
<P>procedure Tts.ComboBox5Change(Sender: TObject);<BR>begin<BR>  LoadDataToCombox(ComboBox6,'sjl','yjl='''+ComboBox4.Text+''' AND ejl='''+ComboBox5.Text+'''');<BR>end;</P>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.