MFC数据库做的登陆程序出错求解

m_AccessLink.Open();
CString str1,str3;
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT3,str3);
int len1 = str1.GetLength();
int len3 = str3.GetLength();
if(len1 == 0 || m_ct3 == 0)
{
    MessageBox("用户名或密码不能为空!");
    return;
}
m_AccessLink.MoveFirst();
while(1){
    if (m_AccessLink.IsEOF())
            break;
    if (m_AccessLink.m_Name == m_ct1)
    {
        if (m_AccessLink.m_Password == m_ct3)
        {
            m_AccessLink.Close();
            MessageBox("success");
            return;
        }
    }
    else m_AccessLink.MoveNext();
}
这串代码做的是登陆那个键,只要是输入了数据库中没有的账号,就会出现中止的那个错误,为什么?

用try catch来包装你上面访问数据库的代码,这样当用户名错误的时候,可以捕获到错误的exception,从而防止程序出错

没有和有的区别,是没有时会走到 if (m_AccessLink.IsEOF()) 分支,然后 break 出去。应该不会出错才对啊!break 出去时,也应该有 Close 数据才对。

你确定数据库里面有的帐号和密码能登录?