本帖最后由 zyq5945 于 2010-05-25 22:13:12 编辑

解决方案 »

  1.   

    发代码的时候请排版一下,方便其网友阅读帮你解决问题。
    SQL可以如下
    strSQL.Format("select count(*) from Login where login_name='%s' and login_password='%s'",m_strUsername, ctrPassward);
      

  2.   

    直接用SQL语句匹配试试,像下面这样带两个条件:
    strSQL.Format("select * from Login where login_name='%s' and login_password='%s'",m_strUsername,m_strPassword);
    如果能选择出来记录说明就是正确的。如果选择不出来用:
    TRACE(_T("%s\n"),strSQL);或MessageBox也行。
    输出结果看看,有什么问题。
    如果还不能看出问题,可以把strSQL复制一下在查询分析器里执行一下看看。
      

  3.   

    单步跟踪到下面这行时:
    if(cPass==cPassward)看看是不是相同?
    有一种可能是字符串两边有空格,最好,TrimLeft,TrimRight
    如:
    cPass.TrimLeft();
    cPass.TrimRigth();cPassward.TrimLeft();
    cPassward.TrimRigth();
    再用下面比较
    if ( cPass == cPassward )
      

  4.   


    已经验证过了,确实是不相等,我感觉是“cPass=(char*)(_bstr_t)theApp.m_pRecordset->GetCollect("login_password");”这错了,?????
      

  5.   

    login_password字段是字符串数组的话
     cPass=(LPCTSTR)_bstr_t(theApp.m_pRecordset->GetCollect("login_password"));
      

  6.   


    高手,谢谢,解决了,确实是空格的事,不过,你的cPass.TrimRigth();是cPass.TrimRight();
    谢谢!