感谢大家的帮助(大家都有分的,不够还可以加的),我这两天因为要忙着买新机器所以还没调程序。
如果大家还有什么看法请尽快RE;
Re happylaodu:
谢谢你,不好意思我还想再问下,如果用Open函数我怎么知道到底用户的输入正确一否呢,MSDN里面说Open 函数没有返回值啊!!!
Re vcmfc:
我的意思是,我本来有一个数据库,这个库里面有好几张表,其中一张表(用户管理)装的是管理人员的信息(包括姓名,密码,等级等),我现在是想在我的程序启动是要求输入用户名和密码,然后我在数据库里的‘用户管理’表中查询是否有相应记录,及其密码等级等等,但我用向导生成程序时并没有将‘用户管理’表进行映射,我自建了一个类(专门影射处理‘用户管理’表),如happylaodu说的那样进行了相应的变量影射等操作,但后来在检测用户和密码时出现了开始说的问题。
当然我觉得自己这样进行不是最好的,很想找更好的办法,如使用SQL等等,希望大家能就此发表高见!!!
Re VCMFC:
能不能更具体点;
Re happylaodu:
(多加个用户数据表是最科学的方法了)本来我就有一个专门用来装已经注册用户的表了,不过谢谢你给我的提示。
我现在已经能打开这个表,但我想用 CDaoRecoreset::FindXXX()来检测用户的密码和名字是否和表中一致是,却出错了,(The Microsoft database Jet engine does not recognize "m_Username" as a valid field name or expression)
下面是我的部分代码:
void CPMISLogon::OnOK()//用户输入完毕后检测
{
bool flag=true;
UpdateData(true);
CLogin db;//CLogin的基类是 CDaorecordset
db.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM 用户管理");
//if(db.FindFirst("用户名=Logon.m_Username,密码=Logon.m_Password")!=0)我不知道这样对不对
if(db.FindFirst("用户名=m_Username")!=0)
{ while(!db.IsEOF() && flag)
{
if(db.FindNext("用户名=m_Username")==0)
{
flag=false;
CDialog::OnOK();
}
}
}