Delphi7中的ComboBox无法显示sql server中返回的值
软件为Delphi7,sql server2000
在Form上添加了ADOQuery1,连接到了数据库中,
添加了一个ComboBox1组件,为其添加代码如下:
procedure TForm4.FormShow(Sender: TObject);
var i : integer;
begin
ComboBox1.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select name from 收入分类');
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin for i:=0 to ADOQuery1.RecordCount-1 do
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('name').AsString);
ADOQuery1.Next;
end;
end;
end;
但是点击运行后,ComboBox1就是没办法显示数据啊!
哪位大侠知道怎么解决啊?
[解决办法]
跟踪一下吧,看看RecordCount到底有没有数据
[解决办法]
可能没数据吧。。
再则你的那个循环写得有点别扭。
改成下面这样
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;
[解决办法]
跟踪看看有没有数据就知道了,你看你的字段名称、表名对了没,数据库里看看有没有数据。调试一下就行了,combobox是肯定没有问题的
[解决办法]
'Select name from 收入分类' 这个语句有没有加载到SQL那个属性里面。
[解决办法]
如果加载了,你再查一下你的数据库有没有数据,代码是没有问题的。
[解决办法]
AdoConnection 设置的库名是否正确,表中有无数据?
[解决办法]
建议楼主这么写
- Delphi(Pascal) code
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;