MFC数据库做的登陆程序出错求解 10C
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();
}
这串代码做的是登陆那个键,只要是输入了数据库中没有的账号,就会出现中止的那个错误,为什么?
c++

3个回答

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

oyljerry
oyljerry 回复xx12138: 你try catch捕获到什么了
5 年多之前 回复
xx12138
xx12138 不行啊,我设计了还是这样,你能帮帮忙吗,兄弟。。。
5 年多之前 回复

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

91program
91program 回复xx12138: 你能不能确认是在 while 中出了问题,还是执行出了 while 才出现问题的呢?增加几行 TRACE 打印来判断一下吧。
5 年多之前 回复
xx12138
xx12138 我调试不来。。。。
5 年多之前 回复
xx12138
xx12138 我调试不来。。。。
5 年多之前 回复
91program
91program 调试一下看看吧,按正常来说有和没有的处理逻辑就差那么一点,注意一下差别处吧。
5 年多之前 回复
91program
91program 回复xx12138: MFC 使用 VS 在 Debug 下可以调试的,看
5 年多之前 回复
xx12138
xx12138 close有的,但是没贴出来
5 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问