vc连接access数据库:[3]DAO方法
1、我们继续使用前几篇经验中的db1.mdb数据库。新建一个MFC工程。新建一个基于CDaoRecordset类的CAccessLink类。
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/a13bbe10bc33ec38127f2b5c295f0c14c37b3c1b.jpg)
2、点击OK,跳转数据源选择页面,默认是设置DAO 数据源的路径,我尝试了一下,选择桌面上的db1.mdb数据库,提示失败信息。查资料说是,这是DAO版本的问题,暂时也没有时间去换新的版本,就选择ODBC数据源
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/a007a9b1eef97fbd7db80600b74133bad241331b.jpg)
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/d2001d7de137c9761b784f7644672b5fd4462b1b.jpg)
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/04d7a614f4d0b5038a16744dcc4ec28332bf201b.jpg)
3、同样我们打开AccessLink.h文件,也会发现,编译器自动生成了与数据库字段相关联的变量。我们在该头文件中添加 #include"afxdb.h"
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/340e4eb8b43ea8db1b8ec881189c2cf7deb2161b.jpg)
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/2db6c1b2dc19ce2c08df2c6d7fdca039121f111b.jpg)
4、接着我们在对话框类中添加AccessLink.h头文件,在初始化函数中添加以下代码(代码和上一篇经验中基本上是一样的,因为m_AccessLink成员变量只在初始化函数中使用,所以可以定义为亩焘雪台局部的)CAccessLink m_AccessLink; if(!m_AccessLink.Open(AFX_DB_USE_DEFAULT_TYPE)) { AfxMessageBox("打开数据库失败!"); return FALSE; } if(!m_AccessLink.CanAppend()) { AfxMessageBox("数据库不能上传记录!"); return FALSE; } m_AccessLink.AddNew(); m_AccessLink.m_Age=0; m_AccessLink.m_Name="xiha"; m_AccessLink.Update();
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/bf6e59704618dfda89ff093589214f579256771b.jpg)
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/031231632385e0366a55755bb8e039723c035a1b.jpg)
5、我们运行程序,打开桌面上的数据库文件,发现插入了数据
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/3c42a5ea3e863048f187e567c33104ebf7a7521b.jpg)
6、补充:之前提到过,隐藏主对话框,方法是:将应用程序类中InitInstance()函数中的dlg.DoModal()语句注释起来,或者换成非模态对话框。
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/f7e6410f822b74ee84f679abda2c8cf1d9a74a1b.jpg)
![vc连接access数据库:[3]DAO方法](https://exp-picture.cdn.bcebos.com/8db0c6a7263348845227799fddee7b7f870e451b.jpg)