我用ADO连接数据库,连接成功后,使用Connection对象的Execute方法对数据表进行添加数据操作时,编译能通过,但是运行是就出错?添加数据的代码如下:CString sSQL,sName,sPassword,sID;
sName='her';
sPassword='111';
sID=4;
sSQL.Format("INSERT INTO UserInfo Values('%s','%s',%s)",sName,sPassword,sID);
m_pRecordset=m_pConnection->Execute((_bstr_t)sSQL,NULL,adCmdText);
m_pRecordset->Close();
大家帮我看看我那里有问题?

解决方案 »

  1.   

    插入语句是不会返回记录集的,把
    m_pRecordset=m_pConnection->Execute((_bstr_t)sSQL,NULL,adCmdText); 
    改成:
    m_pConnection->Execute((_bstr_t)sSQL,NULL,adCmdText);然后把m_pRecordset->Close(); 这句删掉
      

  2.   

    运行时弹出一个框来  说Runtime Error 。。 
      

  3.   

    CString sSQL,sName,sPassword,sID; 
    sName="her"; 
    sPassword="111"; 
    sID="4"; 
    sSQL.Format("INSERT INTO UserInfo Values('%s','%s',%s)",sName,sPassword,sID); 
    m_pConnection->Execute((_bstr_t)sSQL,NULL,adCmdText); 
      

  4.   

    你用了异常捕获的代码段么? 添加try catch试试..
      

  5.   

    好像就是m_pConnection->Execute((_bstr_t)sSQL,&RecordsAffected,adCmdText);有问题
      

  6.   

    你把上面的代码放到下面的try 结构里面看看运行报什么错??try
    {
    //放你在上面写的代码
    }
    catch(_com_error &e)
    {
    AfxMessageBox(e.Description());
    }
      

  7.   

    insert into 语句语法错误
      

  8.   

    把sSQL字符串的内容打印出来看看..
      

  9.   

    把sSQL.Format("INSERT INTO UserInfo Values('%s','%s',%s)",sName,sPassword,sID); 
    改成:
    sSQL.Format("INSERT INTO UserInfo Values('%s','%s',%d)",sName,sPassword,sID); 
      

  10.   

    把你的SQL语句打印出来,然后输入到SQL查询分析器里面运行一下看看行不行。多半是你的SQL语句不正确导致的。