首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

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

在线的都来看看,拉我一把!
有一个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;

热点排行