程序如下:
         CMySet m_set;//CMySet是建立的CRecordset类,与user表相连
          CString user, password;
         bool flag=false;
if (m_set.IsOpen())
    m_set.Close();
m_set.Open();
m_set.MoveFirst();
while(!m_set.IsEOF())
{
   user = m_set.m_user_code; //user_code是表中用户编码字段
   password = m_set.m_user_pwd;//user_pwd是表中密码字段
   if((m_sCode == user)&&(m_sPwd == password))
   {                    //m_sCode与m_sPwd是两个Edit的变量
      flag = true;
      AfxMessageBox("成功登录");
      m_set.Close();
      break;
   }
   else
  {
     m_set.MoveNext();
  }   
}
if(!flag)
{
   AfxMessageBox("你的用户编码或口令有误");
}
运行结果却是:明明是我输对了密码也提示输入口令有误
请问是不是数据库就没联上?

解决方案 »

  1.   

    先将m_set.m_user_code和m_set.m_user_pwd右边的空格去掉.用m_set.m_user_pwd.TrimRight()和m_set.m_user_code.TrimRight().因为你数据库中的字段值由于不够其定义的长度而后面有空格.但你的user和password却没有空格.所以计算机认为用户名和密码不对.
      

  2.   

    我总算弄明白了,调试的时候,m_sCode和m_sUser两个变量的值都为空,一想我输入的值就没赋到变量里头去,最后才知道是因为没有用对话框的UpdateData()函数