可能没数据吧。。 再则你的那个循环写得有点别扭。 改成下面这样 ADOQuery1.Open; ADOQuery1.First; while not ADOQuery1.Eof do begin ComboBox1.Items.Add(ADOQuery1.FieldByName('name').AsString); ADOQuery1.Next; end;
你的代码是没问题的,就是有点不太规整 procedure TForm1.FormShow(Sender: TObject); var I: Integer; begin ComboBox1.Clear; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select 姓名 from student'); ADOQuery1.Open; if ADOQuery1.RecordCount > 0 then begin for I := 0 to ADOQuery1.RecordCount - 1 do begin ComboBox1.Items.Add(ADOQuery1.FieldByName('姓名').AsString); ADOQuery1.Next; end; end; end;
with dm.QDLXX do begin close; sql.Clear; sql.Add('select distinct DL_GONGSI from dl_xx'); open; end; while not dm.QDLXX.Eof do begin combobox9.Items.Add(dm.QDLXX.fieldbyname('dl_gongsi').AsString); dm.QDLXX.Next; end;
再则你的那个循环写得有点别扭。
改成下面这样
ADOQuery1.Open;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('name').AsString);
ADOQuery1.Next;
end;
procedure TForm1.FormShow(Sender: TObject);
var
I: Integer;
begin
ComboBox1.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select 姓名 from student');
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
begin
for I := 0 to ADOQuery1.RecordCount - 1 do
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('姓名').AsString);
ADOQuery1.Next;
end;
end;
end;
with dm.QDLXX do
begin
close;
sql.Clear;
sql.Add('select distinct DL_GONGSI from dl_xx');
open;
end;
while not dm.QDLXX.Eof do
begin
combobox9.Items.Add(dm.QDLXX.fieldbyname('dl_gongsi').AsString);
dm.QDLXX.Next;
end;