CListCtrl 加入数据的问题 在线----------
void CFilm::ReadToList(CListCtrl& list,LPCSTR strSql)
{
list.DeleteAllItems();
CHeaderCtrl *pHeader=list.GetHeaderCtrl();
if(pHeader!=NULL)
{
int cou=pHeader->GetItemCount();
for(int i=0;i<cou;i++)
{
pHeader->DeleteItem(0);
}
}
list.InsertColumn(0,"名称",LVCFMT_CENTER,80);
list.InsertColumn(1,"导演",LVCFMT_CENTER,150);
list.InsertColumn(2,"主演",LVCFMT_CENTER,150);
list.InsertColumn(3,"语言",LVCFMT_CENTER,50);
list.InsertColumn(4,"地区",LVCFMT_CENTER,50);
list.InsertColumn(5,"文件格式",LVCFMT_CENTER,50);
list.InsertColumn(6,"加入日期",LVCFMT_CENTER,80);
list.InsertColumn(7,"集数",LVCFMT_CENTER,50);
list.InsertColumn(8,"点击量",LVCFMT_CENTER,50);
pFilmRecord=m_ado.GetRecordset((_bstr_t)strSql);
//if(pFilmRecord==NULL)
// return;
int i=0;
int iColumnCount=list.GetHeaderCtrl()->GetItemCount();
CString strIndex;
CStringArray strArray;
// pFilmRecord->MoveFirst();
AfxMessageBox(strSql);
while(!pFilmRecord->adoEOF)
{
strArray.RemoveAll();
strIndex.Format("%d",i);
if(list.InsertItem(LVIF_TEXT|LVIF_STATE,i,strIndex,0,LVIS_SELECTED,0,0)!=-1)
AfxMessageBox("success");
_variant_t vValue;
CString strValue;//,strDirector,strRole,strLanguage,strArea,strForm,strDate,strCount,strKick;
vValue=pFilmRecord->GetCollect("film_name");
strValue=(LPCSTR)_bstr_t(vValue);
strArray.Add(strValue);
vValue=pFilmRecord->GetCollect("film_director");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_role");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_language");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_area");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_form");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_joindate");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
{
vValue.ChangeType(VT_BSTR);
vValue.operator _bstr_t();
strArray.Add((LPCSTR)_bstr_t(vValue));
}
vValue=pFilmRecord->GetCollect("film_count");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
vValue=pFilmRecord->GetCollect("film_kickcount");
if(vValue.vt==VT_NULL)
strArray.Add("");
else
strArray.Add((LPCSTR)_bstr_t(vValue));
for(int t=0;t<iColumnCount;t++)
{
list.SetItemText(i,t,strArray.GetAt(t));
AfxMessageBox(strArray.GetAt(t));
}
i++;
pFilmRecord->MoveNext();
}
}