CString CurrentUser;
        bool SEX = true;
CString user, password,str;
CPassDlg m_dlg;//登录界面
        CPSWset m_Set;//这是一个密码表的记录类 
m_Set.Open();
    
while(SEX){
  if(m_dlg.DoModal() == IDOK)
  { 
  
  CurrentUser=m_dlg.CurUser;
          
          
       m_Set.m_strFilter.Format("user='%s'",CurrentUser);
          m_Set.Requery();   CurrentPass = password = m_Set.m_pass;//密码
  if(m_dlg.m_pass == password)
  {
SEX = false;
break;
  }
  if(SEX)
  {
            AfxMessageBox("密码错误,请您重新输入!");
  }
  }
  else exit(-1);
}
         m_Set.Close();
密码表的用户名分别是: administer  126
                       anonymous
                       customer    123
                       teacher     ttt
随便输入哪一个用户名,但是每次只要输入 ttt就能进入里面,而输入对应的密码却不能进入!
请问一下怎么才能做到,输入一个用户名,输入对应的密码才能进入??
谢谢各位!!!

解决方案 »

  1.   

    m_Set.Requery();
    这个函数怎么写的?
      

  2.   

    把你上面的代码放在CPassDlg::OnOK() 里面处理,如果用户名和密码正确就
    return CDialog::OnOK() 否则直接return就得了
      

  3.   

    感觉是过于复杂了,一句查询解决问题:
    CString strSQL;
    strSQL.Format(_T("SELECT * FROM [UserTable] WHERE [UserName]='%s' AND [Password]='%s'"), strUser, strPass);查询结果有记录就是正确了,没有就是不符合。判断的地方如上面所说,在对话框中比较好。