用VC写了个考勤系统,数据库是SQL2000,在测试用户登录模块时,输入用户名和密码后,单击登录按钮后报错:RunTime Error,
this application has requested  the RunTime to terminate it in an unusual way.不知道是什么原因,还请各位大虾指教
下面是登录按钮的响应函数:void Login::OnOK() 
{
// TODO: Add extra validation here
UpdateData(true);

m_sUSER.TrimRight(" "); if ( ""==m_sUSER )
{
AfxMessageBox(_T("请填写用户名"), MB_ICONEXCLAMATION);
        return;
}

_variant_t Holder, strQuery;
    strQuery = "select username, Passwd from administrators where username='"+m_sUSER+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0==iCount ) 
{
theApp.m_iLoginCount++;
if ( theApp.m_iLoginCount>2 ) 
{
AfxMessageBox("没有这个用户\n三次输入均不正确,请核对后再来", MB_ICONEXCLAMATION);
CDialog::OnCancel();
    return;
}
AfxMessageBox("没有这个用户,请重新输入用户名", MB_ICONEXCLAMATION);
    return;
}

CString sPWD;
theApp.m_pADOSet->MoveFirst();
Holder = theApp.m_pADOSet->GetCollect("Passwd");
m_sPWD = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
if ( 0!=sPWD.Compare(m_sPWD) )
{
theApp.m_iLoginCount++;
if ( theApp.m_iLoginCount>2 ) 
{
AfxMessageBox("输入密码不正确\n三次输入均不正确,请核对后再来", MB_ICONEXCLAMATION);
CDialog::OnCancel();
    return;
}
AfxMessageBox("输入密码不正确,请重新输入", MB_ICONEXCLAMATION);
    return;
}

// Get Login User
theApp.m_sCurrentUser = m_sUSER;


CDialog::OnOK();
}