我数据库中有二个表,表中的行数不一样,我用CLISTVIEW 显示,一个表显示正常,另外一个表一般显示正常,大部分没显示,还有出现一些乱码。
while (!pRecordset->GetadoEOF ())
{
listctrl.InsertItem(nCount,data_name[nCount]);
for (i=0;i<cols;i++)
{
                                     .....
lptext = (LPCTSTR)(_bstr_t)get_name;
listctrl.SetItemText(nCount,i,lptext);
}
pRecordset->MoveNext();
nCount++;
}
二个表的获取和显示代码完全一样的 为什么会出现乱码现象,我获取的数据不是乱码 我调试过都正常就是显示出问题。
我写了个测试程序单独读和显示 那个有问题的表代码页一样不会出问题,但二个表和在一起就出现这样的问题了

解决方案 »

  1.   

    CStringW strUnicode = (LPCWSTR)(_bstr_t)get_name;试试看strUnicode 是不是也是乱码?
      

  2.   

    CStringW ?的头文件是啥
    listctrl.SetItemText(nCount,j,(LPCTSTR)lptext);这个好像是出现问题的地方,前8条都能写进去
    但第9条开始 写不进去了 lptext的数据是正常的,我用
    CString aa;
    aa=listctrl.GetItemText(nCount,1);
    测试,从第9条开始就一直没数据。有人出现过这样的问题吗如果连接记录集 是用_RecordsetPtr open方式 那么不会出现这样的情况,
    我用的是_CommandPtr Execute的方式 SQL = "SELECT * FROM [供货商]";
      

  3.   

    while (!pRecordset->GetadoEOF ())
    {
    listctrl.InsertItem(nCount,data_name[nCount]);
    for (int j=0;j<cols;j++)
    {
    f=listctrl.SetItemText(nCount,j,"00");
    }
    pRecordset->MoveNext();
    nCount++;
    }
    我这样写当nCount<9的时候 都能写的进
    但当nCount>=9时 f=0
    那位大侠知道怎么回事啊  是不是CListCtrl的属性没设对啊
    那位大侠快来救救我啊
      

  4.   

    我发现问题所在但不知道怎么解决 那位大仙帮忙一下啊
    while (!pRecordset->GetadoEOF ())
    {
    listctrl.InsertItem(nCount,data_name[nCount]);
    //问题所在
    for (int j=0;j<cols;j++)
    {
    f=listctrl.SetItemText(nCount,j,"00");
    }
    pRecordset->MoveNext();
    nCount++;
    }
    data_name[cols] 是我取的字段名,nCount是我的表中所有的行数,cols<nCount所有才出现到第9行出现乱码的问题;现在我想问如何改才能正常?