学了电脑了有三年了,接触到MFC程序设计也有一年了,看过不少书,<primer c++>  <深入浅出MFC>
 
<MFC window 程序设计> 还有些实例书,也看了有那么久了,可是从来没做过东西,这几天做一个数据库管理系统数据库都想了几天,刚刚做好模块版面,第一个密码登录窗口代码设计就出问题了,老是不用密码都能进,我真晕啊,今天我就做在电脑面前看了一天,一动不动,就是个不知道怎么回事,参考了一下这方面的书籍就是那回事,对
照起来就没什么两样,我晕了,ODBC连接数据库 ,这就是代码部分,我真的晕了,就是登录老是不用密码,一点就进
void CClasshourDlg::OnButton1() 
{
CClasshourDlg m_login;
CAdminRS *m_recordset =new CAdminRS(&m_database);
CString strsql;
int count = 0;
UpdateData(TRUE);
strsql.Format("select * from admin Where user='%s' and password='%s'",m_user,m_password);
m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strsql);
if(m_recordset->GetRecordCount==0)
{
if(count<3)
{
MessageBox("输入不正确");
count++;
}
else
{
MessageBox("太多次数");
m_database.Close();
CDialog::OnOK();
}
}
else
{

m_database.Close();
CMain main;
main.m_database.Open(_T("db"));
main.DoModal();
}
}

解决方案 »

  1.   

    m_database打开的时候设置为不需密码了
      

  2.   

    别急,跟踪看一下,是哪出问题了估计是你的判断那块执行到
    else
    {m_database.Close();
    CMain main;
    main.m_database.Open(_T("db"));
    main.DoModal();
    }执行到这块里去了
      

  3.   

    if(m_recordset->GetRecordCount==0)
    有问题用记录集和空比较就好
    if(!m_pRecordset->adoEOF)
      

  4.   

    先看看strsql字符串的内容,可以用
    AfxTrace(strsql)在调试状态下输出来,粘到你的数据库客户端试一下执行结果.一步步的调试,调试是程序员的基本功,比会写代码还重要.
      

  5.   

    m_recordset->GetRecordCount==0
    --------------
    不要使用GetRecordCount判断查找到的记录个数~~~~`
      

  6.   

    同意dingpiao(丁飘) 的说法,可以在if(m_recordset->GetRecordCount==0)设置断点看看到底是多少,不过还是支持if(!m_pRecordset->adoEOF)判断,这才是最好的习惯