读书人

在线的都来看看拉小弟我一把

发布时间: 2012-03-04 11:13:33 作者: rapoo

在线的都来看看,拉我一把!
有一个INFO表,表中有一个字段是Country,有如下记录:

… … … Country … … …

… … … 中国 … … …
… … … 中国 … … …
… … … 美国 … … …
… … … 中国 … … …
… … … 日本 … … …
… … … 美国 … … …

我想在 ListView 中显示效果如下

国籍   数目

美国  2
日本 1
中国   3
                 请大虾指点一下!!!


我的代码如下:::


procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
ListItem: TListItem;
p:^integer;
begin
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.Add( 'select count(*) from INFO group by Country ');
ADOQuery2.Open ;
for i:=1 to ADOQuery2.RecordCount do
begin
ListItem:=ListView.Items.Add ;

ADOQuery.SQL.Clear ;
ADOQuery.SQL.Add( 'select Country from INFO group by Country ');
ADOQuery.Open ;
ListItem.Caption :=ADOQuery.Fields[0].AsString ;
ADOQuery.Close ;

ListItem.SubItems.Add(ADOQuery2.Fields[0].AsString) ;
new(p);
p^ := ADOQuery2.Fields[0].AsInteger ;
ListItem.Data :=p;
ADOQuery2.Next;
end;

end;


我的代码运行后的结果如下:::


美国 2
美国 1
美国 3

                 请大虾指点一下!!!

[解决办法]
procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
ListItem: TListItem;
p:^integer;
begin
with ADOQuery2 do
begin
SQL.Clear ;
SQL.Add( 'select Country,count(*) from INFO group by Country ');
Open ;
while not Eof do
begin
with ListView.Items.Add do
begin
Caption:=Fields[0].AsString;
SubItems.Add(Fields[1].AsString);
end;
Next;
end;
end;
end;

读书人网 >.NET

热点推荐