要看你用什么连接数据源,例如ODBC则这样:
int i = 0;
while(!m_pSet->IsEOF)
{
  m_List.InsertItem(i, m_pSet->m_Itme1);
  m_List.SetItemText(i, 1, m_pSet->Itme2);
  m_List.SetItemText(i, 2, m_pSet->Itme3);  m_pSet->MoveNext();
  i++;
}//之前当然要初始化ListCtrl的表头了

解决方案 »

  1.   

    这是我写的,看看有没有帮助,写在OnCreate内
    try
      {
      CDatabase db;
      if(db.Open("program"))
      {
    CKongset* m_pSet=new CKongset();
    m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,"SELECT * from PlayTable");
           //初始化LIST   
    LV_ITEM lvitem;
    short fieldcount=m_pSet->GetODBCFieldCount();
    for (int i=0;i<fieldcount;i++) //读入数据库列信息,设置列名
    {
    m_pSet->GetODBCFieldInfo(i,fieldinfo);
    int len = fieldinfo.m_strName.GetLength();
    //CString temp = fieldinfo.m_strName;
    TCHAR* szBuffer=new TCHAR[len+10];
    switch(i)
    {
    case 0:
    strcpy(szBuffer,"编号");
    len=40;
    break;
    case 1:
    strcpy(szBuffer,"播出时间");
    len=150;
    break;
    case 2:
    strcpy(szBuffer,"节目名称");
    len=150;
    break;
    case 3:
    strcpy(szBuffer,"类型");
    len=40;
    break;
    case 4:
    strcpy(szBuffer,"播出时长");
    len=60;
    break;
    case 5:
    strcpy(szBuffer,"存放位置");
    len=150;
    break;
    case 6:
    strcpy(szBuffer,"实播时间");
    len=150;
    break;
    case 7:
    strcpy(szBuffer,"实长");
    len=60;
    break;
    case 8:
    strcpy(szBuffer,"用时");
    len=60;
    break;
    }
    //TCHAR* szBuffer = new TCHAR[len + 1];
    //strcpy(szBuffer, temp.GetBuffer(len));
    //temp.ReleaseBuffer();
    m_ListCtrl.InsertColumn(i,szBuffer,LVCFMT_LEFT,len);//insert column
    delete szBuffer;
    } CString varValue;                            //读入数据项
    int j=0;
    short nFields = m_pSet->GetODBCFieldCount( );
    while( !m_pSet->IsEOF( ) )
    {
       for( short index = 0; index < nFields; index++ )
       {
    m_pSet->GetFieldValue(index, varValue); int len = varValue.GetLength();
    CString temp = varValue;
    TCHAR* szBuffer = new TCHAR[len + 50];
    strcpy(szBuffer, temp.GetBuffer(len));
    temp.ReleaseBuffer(); lvitem.mask=LVIF_TEXT;
    lvitem.iItem=j;
    lvitem.iSubItem=index;
    lvitem.pszText=szBuffer;    m_ListCtrl.InsertItem(&lvitem);
    m_ListCtrl.SetItemText(j,index,szBuffer);
    delete szBuffer;
       }
       m_pSet->MoveNext( );
       j++;
    }
      }
    }
      catch(CDBException* pe)
    {
      AfxMessageBox(pe->m_strError);
      pe->Delete();
     }