我刚开始学VC,在进行数据库编程的时候遇到如下问题:
我的程序是:
vOld = m_pRecordset->GetCollect("KG_U_PASS");
if(vOld==NULL)
{
     vOld="无";
}
m_userlist.SetItem(nItem,2,1,(_bstr_t)vOld,NULL,0,0,0);
可是每次执行都提示我
 error C2666: '==' : 9 overloads have similar conversions
Error executing cl.exe.我不明白这是什么意思,而且也不知道如何解决中间的条件语句是我后加的,因为我的数据库里面有空密码,每次查询到空密码的时候程序就发生错误,所以我想增加一个条件语句,如果碰到空密码就显示“无”
现在我该怎么办,请大侠指点

解决方案 »

  1.   

    if(vOld==NULL)
    {
         vOld="无";
    }
    ------------改成-----------
             CString Yourpassword;
             if(vOld.vt!=VT_NULL&&vOld.vt==VT_EMPTY)
             {
                  Yourpassword="无";
                   m_userlist.SetItem(nItem,2,1,Yourpassword,NULL,0,0,0);
             }
             else
             {
                   m_userlist.SetItem(nItem,2,1,(_bstr_t)vOld,NULL,0,0,0);
              }
      

  2.   

    VOld为_variant_t类型  不能付值为CString
      

  3.   

    _variant_t类型不能用nulll来判断的, 用spwnihao说的即可, 或者你在你的sql语句中用isnull来做:ISNULL(KG_U_PASS, N'无')