//插入记录
_variant_t strQuery;
strQuery = "insert into manager(man_id,man_name,man_grade) values('"+dlg.m_sID+"', '"+dlg.m_sName+"', "+dlg.m_iGrade+")";
if(theApp.ADOExecute(theApp.m_pADOSet,strQuery))
{
AfxMessageBox(_T("添加记录成功"),MB_ICONINFORMATION);
}
else AfxMessageBox(_T("添加记录失败"),MB_ICONINFORMATION); }
其中,dlg.m_sID和 dlg.m_sName 是CString类型,dlg.m_iGrade 是int类型的
错误说明是:MainFrm.cpp(107) : error C2666: '+' : 4 overloads have similar conversions但是就是不能通过编译??

解决方案 »

  1.   

    strQuery = "insert into manager(man_id,man_name,man_grade) values('"+dlg.m_sID+"', '"+dlg.m_sName+"', "+dlg.m_iGrade+")";
    --这种语句根本不符合C++语法阿。怎么那么多双引号呢。
    这样子:
    CString str;
    str.Format("insert into manager(man_id,man_name,man_grade) values('+%s+', '+%s+', +%d+",dlg.m_sID,dlg.m_sName,dlg.m_iGrade);if(theApp.ADOExecute(theApp.m_pADOSet,(_variant_t )str))
    {
    AfxMessageBox(_T("添加记录成功"),MB_ICONINFORMATION);
    }
    else AfxMessageBox(_T("添加记录失败"),MB_ICONINFORMATION); }
      

  2.   

    // 可以这样用...
    strQuery = "insert into manager(man_id,man_name,man_grade) values ('";
    strQuery += dlg.m_sID + "', '";
    strQuery += dlg.m_sName +"', ";
    strQuery += dlg.m_iGrade+")";
      

  3.   

    不好意思,没有注意到dlg.m_iGrade是int的。
    我的意思是在组合SQL语句的时候,可以这样用的。