程序的功能是显示数据库的信息,我连接数据库后使用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就会去下一条,里面的语句也会报错。
求大神解答什么问题