连接数据库出现unhandled exception!问三次了!该如何解决
连接数据库出现unhandled exception!问三次了!
运行的时候总出现run time error
在debug的时候把断点设在打星号处会出现unhandled exception 0xc000005:access violation
我想可能是星号那的代码有问题
哪位大虾指教下代码哪错了?怎么改啊?
void CMyDlg::OnButton1() //loginOK
{
// TODO: Add your control notification handler code here
CString loginid;
UpdateData(TRUE);
if(m_ELoginId==0)
{
MessageBox( "ID can not be NULL ");
return;
}
if(m_ELoginCode==0)
{
MessageBox( "Code can not be NULL ");
return;
}
_RecordsetPtr pRs;
if (FAILED(pRs.CreateInstance( "ADODB.Recordset ")))
{
AfxMessageBox( "Create Instance failed! ");
return;
}
CString strSRC=GetConnStr();
CString strSQL;
strSQL.Format( "select * from 登录 where 编号=%s ",m_ELoginId);
if (FAILED(pRs-> Open( "select * from 登录 ",(_variant_t)strSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox( "Can not open Database! ");
pRs.Release();
return;
}
//UpdateData(FALSE);
_variant_t varELoginCode;
//varELoginCode.ChangeType(VT_I4);
int code;
UpdateData(FALSE);
***** varELoginCode=pRs-> GetCollect( "密码 ");
//code= (LPCSTR)_bstr_t(varELoginCode);
varELoginCode.ChangeType(VT_I4);
code=varELoginCode.intVal;
if(code==m_ELoginCode)
{
MessageBox( "Code error ");
pRs.Release();
return;
}
else//若密码正确则进入选择介面页面
{
CChooseInterFace ChooseInterFace;
ChooseInterFace.DoModal();
pRs.Release();
}
}
------解决方案--------------------
是不是先要pRs-> Close()后再pRs.Release();
------解决方案--------------------
刚学VC.在该行前检测pRs中是否有记录,以确定该处是否能成功获取数据.有时访问空记录集时会出现类似问题.
运行的时候总出现run time error
在debug的时候把断点设在打星号处会出现unhandled exception 0xc000005:access violation
我想可能是星号那的代码有问题
哪位大虾指教下代码哪错了?怎么改啊?
void CMyDlg::OnButton1() //loginOK
{
// TODO: Add your control notification handler code here
CString loginid;
UpdateData(TRUE);
if(m_ELoginId==0)
{
MessageBox( "ID can not be NULL ");
return;
}
if(m_ELoginCode==0)
{
MessageBox( "Code can not be NULL ");
return;
}
_RecordsetPtr pRs;
if (FAILED(pRs.CreateInstance( "ADODB.Recordset ")))
{
AfxMessageBox( "Create Instance failed! ");
return;
}
CString strSRC=GetConnStr();
CString strSQL;
strSQL.Format( "select * from 登录 where 编号=%s ",m_ELoginId);
if (FAILED(pRs-> Open( "select * from 登录 ",(_variant_t)strSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox( "Can not open Database! ");
pRs.Release();
return;
}
//UpdateData(FALSE);
_variant_t varELoginCode;
//varELoginCode.ChangeType(VT_I4);
int code;
UpdateData(FALSE);
***** varELoginCode=pRs-> GetCollect( "密码 ");
//code= (LPCSTR)_bstr_t(varELoginCode);
varELoginCode.ChangeType(VT_I4);
code=varELoginCode.intVal;
if(code==m_ELoginCode)
{
MessageBox( "Code error ");
pRs.Release();
return;
}
else//若密码正确则进入选择介面页面
{
CChooseInterFace ChooseInterFace;
ChooseInterFace.DoModal();
pRs.Release();
}
}
------解决方案--------------------
是不是先要pRs-> Close()后再pRs.Release();
------解决方案--------------------
刚学VC.在该行前检测pRs中是否有记录,以确定该处是否能成功获取数据.有时访问空记录集时会出现类似问题.