关于ADO数据库的问题,求各位大侠帮忙啊。。。。。

xujin_ 2012-05-07 07:36:02
最近写了一个ADO数据库的程序,老是出现错误百思不得其解啊!
这部分的功能是实现数据库的添加功能
void CPcsDlg::OnComfirm()
{
UpdateData();
_bstr_t vSQL;
CString strno;
strno.Format("%d",m_strno);
//向Title表里面插入数据
vSQL="insert into Title values('"+strno+"','"+m_strTitle+"')";
m_ADOConn.ExecuteSQL(vSQL);
//向OptionContent表里面插入数据
vSQL="insert into OptionContent value('"+strno+"','"+m_strSelection+"','"+m_strSelectionContent+"')";
m_ADOConn.ExecuteSQL(vSQL);
UpdateData(false);
}

这部分是我的修改功能的实现
void CPcsDlg::OnComfirmModifyTitle()
{
UpdateData();
CString str;
str.Format("Update Title SET QuestionContent = '%s' where QuestionNo = '%d'",m_mSelectionContent,m_mQuestionNo);
_bstr_t vSQL((LPCTSTR)str);

//注释的部分是我测试的删除功能
/* str.Format("%d",m_mQuestionNo);
vSQL ="Update Title set QuestionContent = " +m_mSelectionContent + " where QuestionNo = " + str;;
vSQL=_T("delete from Title where QuestionNo = '"+str+"'");*/

m_ADOConn.ExecuteSQL(vSQL);
UpdateData(false);
}
//这部分是ExecuteSQL()函数的实现
BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
{
OnInitADOConn();
}
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox("不能打开记录集");
return false;
}

}
我尝试了很多种方法,前面的添加功能很正常,但是在修改(删除)的时候总是出现异常,提示就是“不能打开记录集”。百思不得其解啊,还望哪位大侠帮助。我觉得ExecuteSQL()函数应该没问题的。另外说明我用的是Acess2010数据库
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GOD_cheng 2012-05-08
  • 打赏
  • 举报
回复
先把sql语句放在数据中执行测试下,看有没有问题。再看ExecuteSQL返回值。。。
liuli7786 2012-05-08
  • 打赏
  • 举报
回复
vSQL=_T("delete from Title where QuestionNo = '"+str+"'");这句错了吧?
----------------------->>
vSQL=_T("delete from Title where QuestionNo = "+str);
BombZhang 2012-05-07
  • 打赏
  • 举报
回复
QuestionContent 和QuestionNo 字段分别是什么类型的?
hongronggong 2012-05-07
  • 打赏
  • 举报
回复
不是很清楚
SONG_CA 2012-05-07
  • 打赏
  • 举报
回复
语句不对吧

/* str.Format("%d",m_mQuestionNo);
vSQL=_T("delete from Title where QuestionNo = "+str);*/

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧