有一个表,有两个字段USER和PASSWORD值都是1111,程序界面上有两个EDIT和一个按钮,正常情况下在EDIT1中输入1111则显示消息“已登陆”或者“密码错误”,在EDIT1中输入其他数值如222等显示没有此用户,但是现在我在EDIT1中无论输入什么数据他都显示“已登陆”或者“密码错误”,望高手帮我看一下哪里有错,谢谢。
代码片段如下:
void CUserDlg::OnOK() 
{
CString aa;
GetDlgItemText(IDC_EDIT1,aa);
rs.m_strFilter =("user='%d'",aa);

if (rs.IsEOF())
{
MessageBox("没有此用户");
}
else
{
GetDlgItemText(IDC_EDIT2,aa);
if(rs.m_password ==aa)
{
MessageBox("已登陆");
}
else
{
MessageBox("密码错误");
}
}
rs.Close();
//CDialog::OnOK();
}

解决方案 »

  1.   

    改成这样
    void CUserDlg::OnOK() 
    {
             UodateData(TRUE);
    CString aa;
    GetDlgItemText(IDC_EDIT1,aa);
    rs.m_strFilter =("user='%d'",aa);

    if (rs.IsEOF())
    {
    MessageBox("没有此用户");
    }
    else
    {
    GetDlgItemText(IDC_EDIT2,aa);
    if(rs.m_password ==aa)
    {
    MessageBox("已登陆");
    }
    else
    {
    MessageBox("密码错误");
    }
    }
    rs.Close();
    //CDialog::OnOK();
    }
      

  2.   

    用EDIT一定要加UpdateData(TRUE)UpdateData(FALSE);
    在rs.Close();前加UpdateData(FALSE);
      

  3.   

    我试过了还是老样子,会不会是rs.isEOF()的关系?
      

  4.   

    只要这张表里存在记录,不管是什么记录,rs.IsEOF()就很可能为0。这样一定不运行if(rs.IsEOF()) {  }
    因此出现这样的结果