BOOL AdoEbookConn::ExecuteStr(CString str)
{
try
{
if(!m_pConnection->State)
OnInitConnect();
m_pConnection->Execute((_bstr_t)str,NULL,adCmdText);
return TRUE;
}
    catch(_com_error e)
{
        CString errormessage;
errormessage.Format("失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return FALSE;
}
}
这是我的数据库类中的一段程序
当以 CString sql="INSERT INTO Users VALUES('" + m_username + "','" + m_password + "','" + strtype + "')";为参数传入就没问题。
当以 CString sql="DELETE * FROM Users WHERE Username='" +name+ "'";为参数传入程序执行完了没效果。
当以 CString sql="UPDATE Users SET Password='" +m_password+ "'WHERE Username='"+name+ "'";
为参数传入,程序就会捕到异常,进入catch块。
大家看看SQL语句是不是没问题?要没问题是怎摸回事???

解决方案 »

  1.   

    "DELETE FROM Users...."我的一个update语句:
    sql.Format("update [RoomInfor] set [RoomID]='%s',[RoomType]='%s'",m_id,m_type);
      

  2.   

    CString sql="DELETE * FROM Users WHERE Username='" +name+ "'";
    改为:
    CString sql="delete users where Username='" +name+ "'";CString sql="UPDATE Users SET Password='" +m_password+ "' WHERE Username='"+name+ "'";
    // 在"'WHERE 中'与where间少了个空格-> "' WHERE 
      

  3.   

    发来看看吧
    [email protected]
      

  4.   

    输出一下sql语句,看格式是否正确