以下是我学生管理系统的登录验证代码。编译都没错。但运行的时候总是runtime error
还请哪位大虾指教!
void CMyDlg::OnButton1() //loginOK
{
// TODO: Add your control notification handler code here
CString loginid;
UpdateData(TRUE);
if(m_ELoginId=="")
{
MessageBox("ID can not be NULL");
return;
}
if(m_ELoginCode=="")
{
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((_variant_t)strSQL,(_variant_t)strSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox("Can not open Database!");
pRs.Release();
return;
}
_variant_t varELoginCode;
//varELoginCode.ChangeType(VT_I4);
varELoginCode=pRs->GetCollect("密码");
varELoginCode.ChangeType(VT_I4);
UpdateData(FALSE);
if(varELoginCode.intVal!=m_ELoginCode)
{
MessageBox("Code error");
return;
}
pRs.Release();
}
CString CMyDlg::GetConnStr() //把数据库链接字符串写成一个函数
{
char path[ MAX_PATH ] = { '\0' }; 
CString strSRC="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
GetCurrentDirectory( MAX_PATH, path ); 
CString pathstr;
pathstr.Format("%s",path);
strSRC +=pathstr;
strSRC += "\\学生管理系统.mdb"; 
strSRC +=";Persist Security Info=False";
return strSRC;
}