for(int i=1;i<=12;i++)
   {
  
   m_pRecordset=m_pConnection->Execute("SELECT COUNT(*) FROM jiluo        where  time=(_variant_t)i ",&RecordsAffected,adCmdText);
   }
怎样将i得值赋给time,我这样有错假如time=1这样就没错了,可是我要通过循环。
能教教我吗?

解决方案 »

  1.   

    for(int i=1;i<=12;i++)
       {
       CString temp;
       temp.Format("SELECT COUNT(*) FROM jiluo  where  time=%d",i);
       m_pRecordset=m_pConnection->Execute(temp,&RecordsAffected,adCmdText);
       }
      

  2.   

    先把int i转化为字符串istr
    char istr[3];
    itoa(i,istr,10);
    后CString sql = "..."+istr+"...";
      

  3.   

    楼主能不能把你的访问数据库的方法贴出来?你这样访问数据库请问如何得到  select 的结果呀?偶是菜鸟,想学习学习
      

  4.   

    CString s;
       s.Format("d%",i);
       
       m_pRecordset=m_pConnection->Execute("SELECT COUNT(*) FROM jiluo where  time=s",&RecordsAffected,adCmdText);
      我将它改成这样,不过还是不行呀?
      

  5.   

    晕,你怎么会这样呀,s是变量,你这样写成字符s了
    照你这个写法,应该是
    CString s,str;
       s.Format("d%",i);
    str="SELECT COUNT(*) FROM jiluo where  time=";
    str=str+ s;
    m_pRecordset=m_pConnection->Execute(str,&RecordsAffected,adCmdText);
      

  6.   

    error C2664: 'Execute' : cannot convert parameter 1 from 'class CString' to 'class _bstr_t'
            No constructor could take the source type, or constructor overload resolution was ambiguous
    还是不行呀
    有这样的错
      

  7.   

    m_pRecordset = m_pConnection->Execute(_bstr_t(str), NULL, adCmdText)