小弟在编一下登录对话框的设置,程序如下:(其中,CClerk为记集Clerk相对应的类,其基类为:CRecrodset;m_database为成员变量,类型为CDatabase.程序可以运行,但当填入的名字与密码与表中存储的相配时,就会弹出"检索记录出错".但如果填入的名字表中没有记录时,就是有"用户名不存在或密码错误的提示".请各位指点下,多谢!
void CClerkLoginDlg::OnOK()
{
CClerk *loginset=new CClerk(&m_database);
CString csSQL="";
BOOL OK=FALSE;
UpdateData(TRUE);
csSQL.Format("select *from Clerk where name='%s' AND PassWord='%s'",m_csClerkName,m_csPassword);
OK=loginset->Open(AFX_DB_USE_DEFAULT_TYPE,csSQL);
if(!OK)
{
AfxMessageBox("打开数据库失败!");
}
else
{
if(!loginset->IsEOF())
{
loginset->Close();
CDialog::OnOK();
}
else
{
if(m_icount<3)
{
AfxMessageBox("用户名不存在或密码错误!");
m_icount++;
m_csClerkName="";
m_csPassword="";
UpdateData(FALSE);
}
else
{
MessageBox("请查正再来尝试");
loginset->Close();
exit(0);
}
}
}
}