我把它重新装栽数据之后就没有问题了,为什么?
只是在第一次的时候是乱码!

解决方案 »

  1.   

    你在向listbox添加项时,可能有问题。把这部分代码贴出来
      

  2.   

    首先从数据库中读取数据,然后再把它加入listbox中,代码如下:
    try
    {
    pRec.CreateInstance("ADODB.Recordset");
    pRec->Open("select * from tbkind where name='部门' and val<>'无'",_variant_t((IDispatch*)pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
    if(pRec->RecordCount<=0)
    m_btndelete.EnableWindow(false);
    while(!pRec->ADOEOF)
    {
    vValue=pRec->GetCollect("val");
    m_lstcon.AddString((char*)vValue.bstrVal);
    pRec->MoveNext();
    }
    if(pRec->RecordCount>0)
    {
    m_lstcon.SetCurSel(0);
    }
    }
    catch(_com_error e)
    {
    MessageBox("读取数据失败!","错误",MB_ICONERROR);
    return false;
    }
      

  3.   

    搞定!
    那个m_lstcon.AddString((char*)vValue.bstrVal);中不能用char*面是应该用CString
    TMD,竟有这种怪事,怎么回事?为什么?
      

  4.   

    从显示上看可以知道,用那个char*显示的长度是够的,不同的是,它显示乱码