一、数据库的准备
1、新建数据库
(1)使用ACCESS2007,新建一个数据库命名为database1.accdb。表1另存为USER_ID,增加两列分别为USER_ID和PASSWORD,保存。
(2)在控制面板->管理工具->数据源中添加数据源。
2、新建MFC工程
(1)新建一个单文档工程(新建对话框的话不知道后面怎么操作),在新建工程的时候不需要选择数据库。如果选择了我也不知道会怎样。
(2)在资源视图Dialog上点右键,新建一个对话框(作为登录框)。对话框上画两个编辑框,分别命名为ID_EDIT_USERID和ID_EDIT_PASSWORD,用于输入用户名和密码。密码框在属性中设置成密码类型。
(3)打开类向导,自动弹出添加新类的对话框:
新建一个CDlg_login类
为该类中的两个编辑框添加成员变量:m_login_userid和m_login_password。
3、在MFC中建立ADO数据库连接
(1)在stdafx.h文件中添加对ado的支持:
#import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,“adoEOF”)
开始做这一步的时候,因为电脑里缺失了msado15.dll而报错,在网上随便下载一个,放到上述路径中,再注册一下就可以了。
关于这行代码的意思:
#import 就是引入的意思, “C:\Program Files\Common Files\System\ADO\msado15.dll” 是msado15.dll的路径,一般就是在这个位置。
no_namespace 的意思是不使用命名空间,具体什么意思我也不清楚,用就完了。
rename(“EOF”, “EndOfFile”) 的意思是重命名 EOF,为了避免与MFC中的EOF重名造成错误。
(2)在CDlg_login.h头文件中添加:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
注意这两个变量要加在CDlg_login类的内部。
(3)连接数据源,双击“确定”按钮,在OnOk函数中输入如下:
void CDlg_login::OnOK()
{
// TODO: Add extra validation here
this->UpdateData(true);
::CoInitialize(NULL);
this->m_pConnection.CreateInstance(__uuidof(Connection));
this->m_pRecordset.CreateInstance(__uuidof(Recordset));
this->m_pConnection->Open("DSN=TQES_DATABASE","","",0);//上面四行为打开数据源连接,数据库名与在数据源中注册的一致
CString str;
str.Format("select * from USER_ID where USER_ID='%s' and PASSWORD='%s'",this->m_login_name,this->m_login_pwd);//第一个USER_ID是表名,第二个是列字段
BSTR bstrSQL=str.AllocSysString();
this->m_pRecordset->Open(bstrSQL,(IDispatch*)this->m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
if(!this->m_pRecordset->adoEOF)
CDialog::OnOK();
else
MessageBox("Failed");
this->m_pRecordset->Close();
this->m_pConnection->Close();
}
至此ADO数据源连接完毕。
下一篇:基于MFC和ACCESS的学生综合素质能力评价系统软件开发(2-登录界面)
上一篇:基于MFC和ACCESS的学生综合素质能力评价系统软件开发(0-系统说明)