发代码的时候请排版一下,方便其网友阅读帮你解决问题。 SQL可以如下 strSQL.Format("select count(*) from Login where login_name='%s' and login_password='%s'",m_strUsername, ctrPassward);
直接用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复制一下在查询分析器里执行一下看看。
SQL可以如下
strSQL.Format("select count(*) from Login where login_name='%s' and login_password='%s'",m_strUsername, ctrPassward);
strSQL.Format("select * from Login where login_name='%s' and login_password='%s'",m_strUsername,m_strPassword);
如果能选择出来记录说明就是正确的。如果选择不出来用:
TRACE(_T("%s\n"),strSQL);或MessageBox也行。
输出结果看看,有什么问题。
如果还不能看出问题,可以把strSQL复制一下在查询分析器里执行一下看看。
if(cPass==cPassward)看看是不是相同?
有一种可能是字符串两边有空格,最好,TrimLeft,TrimRight
如:
cPass.TrimLeft();
cPass.TrimRigth();cPassward.TrimLeft();
cPassward.TrimRigth();
再用下面比较
if ( cPass == cPassward )
已经验证过了,确实是不相等,我感觉是“cPass=(char*)(_bstr_t)theApp.m_pRecordset->GetCollect("login_password");”这错了,?????
cPass=(LPCTSTR)_bstr_t(theApp.m_pRecordset->GetCollect("login_password"));
高手,谢谢,解决了,确实是空格的事,不过,你的cPass.TrimRigth();是cPass.TrimRight();
谢谢!