var
    Ds:TAdoDataSet;
    TmpItem:TListItem;
    i:integer;
begin
Ds:=TAdoDataSet.Create(nil);
        try
            Ds.Connection:=AdoConn;
            Ds.CommandText:='select * from '+TABLENAME+' where f_jb=1';
            Ds.Open;
            Ds.First;
            LvTxl.OwnerData := true;
            LvTxl.Items.BEGINUPDATE;
            for i:=0 to Ds.RecordCount-1 do
            begin
                TmpItem :=LvTxl.Items.Add;
                TmpItem.Caption :=Ds.FieldValues['f_bm']+' '+Ds.FieldValues['f_mc'];
                TmpItem.SubItems.Add(Ds.FieldValues['f_zjf']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_dz']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_yb']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_dh']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_cz']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_email']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_qq']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_http']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_msn']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_sj']);
                TmpItem.SubItems.Add(Ds.FieldValues['f_bz']);
            end;
            LvTxl.Items.ENDUPDATE;
        finally
            Ds.Close;
            Ds.Free;
        end;
end;

解决方案 »

  1.   

    在FOR循环中最后加一句:
    Ds.Next;
    以便跳到下一条记录
      

  2.   

    还有就是你好象使用了虚拟方法,建议先去掉这句再调试:
    LvTxl.OwnerData := true;
      

  3.   

    var
        Ds:TAdoDataSet;
        TmpItem:TListItem;
        i:integer;
    begin
    Ds:=TAdoDataSet.Create(nil);
            try
                Ds.Connection:=AdoConn;
                Ds.CommandText:='select * from '+TABLENAME+' where f_jb=1';
                Ds.Open;
                Ds.First;
                for i:=0 to Ds.RecordCount-1 do
                begin
                    TmpItem :=LvTxl.Items.Add;
                    TmpItem.Caption :=Ds.FieldValues['f_bm']+' '+Ds.FieldValues['f_mc'];
                    TmpItem.SubItems.Add(Ds.FieldValues['f_zjf']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_dz']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_yb']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_dh']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_cz']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_email']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_qq']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_http']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_msn']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_sj']);
                    TmpItem.SubItems.Add(Ds.FieldValues['f_bz']);
                  Ds.Next;
                end;
                  
            finally
                Ds.Close;
                Ds.Free;
            end;
    end;