如何提取某一字段下的所有值,使其显示在Listbox中(24分)

  • 主题发起人 主题发起人 delnus
  • 开始时间 开始时间
D

delnus

Unregistered / Unconfirmed
GUEST, unregistred user!
比如使用Query和数据库链接,假如有表Country,把它的字段Name下所有的值显示在
Listbox中
 
procedure FieldValueToList(ADataSet: TDataSet; AFieldName: string;
AList: TStrings);
var
CurrentPoint: TBookmark;
begin
//如果数据集没有打开
if not ADataSet.Active then
Exit;
AList.Clear;
with ADataSet do
begin
DisableControls;
CurrentPoint := GetBookmark;
try
First;
while not Eof do
begin
AList.Add(FieldByName(AFieldName).AsString);
Next;
end;
finally
GotoBookmark(CurrentPoint);
EnableControls;
FreeBookmark(CurrentPoint);
end;
end;
end;
 
我测试过的!

with adotable1 do
begin
First;
while not eof do
begin
Form1.ListBox1.Items.Add(ADOTable1.FieldValues['部门名称']);
Next;
end;
end;
 
listbox1.items.clear;
while not adoQuery1.eof do
begin
Listbox1.items.add(adoQuery1.FieldByName('字段名称').asstring);
adoQuery1.Next;
end;
 
使用dblistbox,指定字段为表中相应字段即可。
 
Sql里面加上distinct过滤一下,会好一些。
 
with query1 do begin
sql.clear;
sql.add('select distinct name from table');
try open except end;
while not eof do begin
listbox1.items.add(fields[0].asstring);
next
end;
close
end
 
后退
顶部