首页 新闻 会员 周边

MFC使用ADO连接数据库的一个错误

0
悬赏园豆:20 [待解决问题]

程序的功能是显示数据库的信息,我连接数据库后使用m_pRecordset->MoveNext();函数没有任何问题,但是想要回到上一条记录使用m_pRecordset->MovePrevious();就会报内存错误。
inline HRESULT Recordset15::MovePrevious ( ) {
HRESULT _hr = raw_MovePrevious();
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}
使用movelast也不可以,只可以使用movenext。

这个是连接数据库的语句
m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C://Users//liu//Desktop//DataDisp1.mdb", "", "", adModeUnknown);
try
{
CString Sel = _T("SELECT * FROM Addresslist ");
m_pRecordset = m_pConn->Execute((_bstr_t)Sel, &RecordsAffected, adCmdText);

通过按钮转到下个记录没有任何问题
void CMFC1Dlg::OnBnClickedButton1()
{
m_pRecordset->MoveNext();
SetData();
OnPaint();
// TODO: 在此添加控件通知处理程序代码
}

通过按钮回到上条记录报错
void CMFC1Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_pRecordset->MovePrevious();
SetData();
OnPaint();
}

在SetData中有个判断,如果是adoEOF就会回去,如果是adoBOF就会去下一条,里面的语句也会报错。

求大神解答什么问题

FFFFFFFly的主页 FFFFFFFly | 初学一级 | 园豆:108
提问于:2018-10-19 15:14
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册