如何将数据显示在CHEAKLIXTBOX里,好急啊,快失业了。(0分)

  • 主题发起人 主题发起人 topdelphi
  • 开始时间 开始时间
T

topdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的窗体有两个CHEAKLISTBOX,如何将数据库的字段读入到CHEAKLISTBOX1里
,当选择CHEAKLISTBOX1里面的某个或多个字段之后,将数据库的记录读入到CHEAKLISTBOX2
里,如果用户在CHEAKLISTBOX1选择多个字段,或在CHEAKLISTBOX2选择多个记录的时候,
都能查询出来将数据显示在DBGRID里,请问如何实现啊这个功能啊,请给一个详细的例子,
真的谢谢各位了.好急啊,快失业了.
 
用for语句控制:
var
s1:string ;
begin
form.adotable1.close;
form.adotable1.open;
form.adotable.first;
s1:=form.adotable1.recordcount do
for list:=0 to s1 do
form.checklistbox1.check
  • :=form.adotable1.fieldbyname('字段名');
    end;
    在for语句后面还有一个定位语句,我不太记得啦,我到公司查到我写的代码再告诉你咯
    我也有一个问题,就是在选择以后,怎样清除我选择的内容,
 
先生,谢谢你的回答,我写的是这样,如果我写得丑陋,请不要见怪,我还有个问题,如果
这个同时对CHEAKLIST1和CHEAKLIST2同时选择多个项目,请问这个查询多条记录
的数据如何显示在DBGRID里呢,谢谢

procedure TForm1.List1Click(Sender: TObject);
var
i,j,k:integer;
s,sql:string;
begin

list2.Clear;
for i:=0 to list1.Items.Count -1 do
begin
case i of
0:begin
if list1.Checked then
begin
query1.First;
while not query1.Eof do begin
list2.Items.Add(query1.Fields[0].AsString);
query1.Next;
end;
end;
end;

1:begin
if list1.Checked then
begin
query1.First;
while not query1.Eof do begin
list2.Items.Add(query1.Fields[1].AsString );
query1.Next;
end;
end;
end;
...................
 
做个对照表行不行?
 
先生的意思是叫我在数据库在做多个表吗,但是我这个功能是同一张表的,只是将字段同记录
分开,查询时多选条件来显示出来的,或者是我不明白先生的意思,可以详细一点吗,谢谢你了.
 
这种设计思路不太好.条件多时生成的查询语句会太长.
而且你实现的代码也存在问题.应考虑到第二个选择列表保存的问题.
记得开发者资源社区有个模糊查询的控件.觉得你可以直接用或者看看别人是怎么样写的.
http://delphi.mychangshu.com

 
我是说用数组或其它的进行字段对应。。
 
请问这个先生这个数组的语句如何写的啊,我之前是这样写的,但是注释有地方就有错误了.

rocedure TForm1.Button1Click(Sender: TObject);
var
j,k,l:integer;
wherecount,wherecount1:integer;
begin
wherecount:=0;
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:='select * from jobs ';
query1.Open;

for j:=0 to list1.Items.Count -1 do
begin
if list1.Checked[j] then

if wherecount <> 0 then
begin
query1.SQL.Add ('and');
wherecount:=1;
end;
query1.SQL.Add(list1.Items.Strings[j]+'in(');//程序大多数说这第三条语句出错了.
请问如何修改啊.
end;

wherecount1:=0 ;
for k:=0 to list2.Items.Count -1 do
begin
if (list2.Checked[k]) then
begin
if wherecount1 <> 0 then
begin
query1.SQL.Add(',');
wherecount1:=1;
end;

query1.SQL.Add(''''+list2.Items.Strings[k]+'''');
end;
end;
query1.SQL.Add(')');
query1.Open;
end;
 
后退
顶部