请教!!数据库查询功能

kyu00203 2011-06-18 09:06:12
现将数据库中一个字段的符合某些条件的内容动态的加入combobox的Items中,想要使数据库感知组件DBGrid只显示下拉列表中出现的部分,比如说一个产品目录,内容是一些食品和生活用品(包括名称、数量、价格三个字段),而combobox中只是某些食品的名称,想让DBGrid只显示combobox中所列出的食品名称,以及这些名称所对应的其他两个字段,但是combobox的内容不是固定的,当条件改变时,Items的内容就改变了,而DBGrid中的内容也要相应改变,不知道该怎么实现,说的语无伦次。。。希望各位能明白~(只需要查询部分代码即可,不用管Items内容怎么变~)
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2011-06-20
  • 打赏
  • 举报
回复
首先邏輯要清晰,動態去改變它的items...
kyu00203 2011-06-20
  • 打赏
  • 举报
回复
查询语句我用了Select * from 数据库名 where 字段名 In ('''+combobox1.items.text+'''); 比如说此时下拉列表中是A.B.C,可是当运行时,查询的不是('A','B','C'),而是纵向排列的A B C...jiong死....求教啊!
luquansen 2011-06-20
  • 打赏
  • 举报
回复
在改变ComboBox中Items的时候作相应的查询,然后把数据传给DBGrid不就可以了吗
hswhjq 2011-06-20
  • 打赏
  • 举报
回复
procedure TForm1.cbb1Change(Sender: TObject);
var
s: string;
i: Integer;
begin
s := '';
for i := 0 to cbb1.Items.Count - 1 do
begin
if i = cbb1.Items.Count - 1 then
s := s + '''' + cbb1.Items.Strings[i] + ''''
else
s := s + '''' + cbb1.Items.Strings[i] + ''',';
end;
AdoDataSet1.Active := False;
AdoDataSet1.CommandText := 'select * from COE_Cn where CnName in (' + s + ')';
AdoDataSet1.Active := True;
end;
kyu00203 2011-06-19
  • 打赏
  • 举报
回复
那要是不考虑items的变化,只是把下拉列表中出现的内容及其相应字段显示出来怎么写呢?
SQLDebug_Fan 2011-06-19
  • 打赏
  • 举报
回复
这个问题是个逻辑题,楼主可以在Query的OnBeforePost事件中加代码来更新TComboBox
山东蓝鸟贵薪 2011-06-19
  • 打赏
  • 举报
回复
数据库控件
连接控件
编写SQL语句
执行SQL语句,得到相关结果
lyhoo163 2011-06-19
  • 打赏
  • 举报
回复
combobox的OnChange事件中加入带有where S=combobox.text的SQL语句,刷新DBGrid。
cntigercat 2011-06-19
  • 打赏
  • 举报
回复
mark
liyubaiandlon 2011-06-19
  • 打赏
  • 举报
回复
一、添加combobox控件的OnChange事件
二、在事件中的代码编写(例如你的数据库连接控件是DataSet):
DataSet1.Actvie := False;
DataSet1.commandText = format('select 字段1,字段2,字段3... from Table where name = ''%s''', [Trim(combobox.Text)]);
DataSet1.Active := True;

三、说明:其他数据库连接对象也是类似,先将其连接断开,然后初始话查询语句,再进行连接查询
yqdragon 2011-06-18
  • 打赏
  • 举报
回复
combobox的OnChange事件中写刷新DBGrid代码

2,497

社区成员

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

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