1. 首先创建一个基于对话框的MFC应用程序ADO_ACCESS.sln.然后在stdafx.h头文件末尾添加(网上有说在某个#include后面的添加的,也有说在合适位置添加的,我这里直接添加在最末尾)

win32位系统添加

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

win64位系统添加

#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

添加完成后#import下面会出现红色波浪线提示错误,不用理会,过会儿会消失。
2. 在ADO_ACCESSDlg.h类里的public下添加

_ConnectionPtr m_pConnection;//连接access数据库的链接对象
_RecordsetPtr m_pRecordset;//结果集对象

3. 初始化数据库连接。 在ADO_ACCESSDlg.cpp文件的OnInitDialog()初始化成员函数里添加如下代码:

 // TODO:  在此添加额外的初始化代码try{CoInitialize(NULL);m_pConnection = _ConnectionPtr(__uuidof(Connection));m_pConnection->ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\\mfc_access.accdb;";m_pConnection->Open("", "", "", adConnectUnspecified);}catch (_com_error e){AfxMessageBox(_T("数据库连接失败!"));return FALSE;}

如果选择win32 安装office 32位

如果选择x64 安装office 64位

4. 连接数据库成功后,我们新建四个按钮分别实现增加、删除、修改、查询分别对应BUTTON1 - BUTTON4

增加

//增加
void CADO_ACCESSDlg::OnBnClickedButton1()
{// TODO:  在此添加控件通知处理程序代码_variant_t RecordsAffected;CString AddSql;AddSql.Format(_T("INSERT INTO userInfo(name,sex,age) VALUES('小花','女',12)"));try{m_pConnection->Execute((_bstr_t)AddSql, &RecordsAffected, adCmdText);AfxMessageBox(_T("添加用户成功!"));}catch (_com_error* e){AfxMessageBox(_T("添加用户失败!"));}
} 

删除

//删除
void CADO_ACCESSDlg::OnBnClickedButton2()
{// TODO:  在此添加控件通知处理程序代码CString str;try{str.Format(_T("DELETE from userInfo where id=2"));_variant_t RecordsAffected;m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);AfxMessageBox(_T("删除成功!"));}catch (_com_error*e){AfxMessageBox(e->ErrorMessage());}
}

修改

//修改
void CADO_ACCESSDlg::OnBnClickedButton3()
{// TODO:  在此添加控件通知处理程序代码CString str;try{str.Format(_T("update userInfo set name='小草' where id=3"));_variant_t RecordsAffected;m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);AfxMessageBox(_T("修改成功!"));}catch (_com_error*e){AfxMessageBox(e->ErrorMessage());}
}

查询

//查询
void CADO_ACCESSDlg::OnBnClickedButton4()
{// TODO:  在此添加控件通知处理程序代码UpdateData(true);CString strName;CString strSex;try{m_pRecordset.CreateInstance(__uuidof(Recordset));CString search_sql;search_sql.Format(_T("SELECT * FROM userInfo"));m_pRecordset = ((CADO_ACCESSDlg*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);while (!m_pRecordset->adoEOF){strName = m_pRecordset->GetCollect("name").bstrVal;strSex = m_pRecordset->GetCollect("sex").bstrVal;m_pRecordset->MoveNext();}m_pRecordset->Close();}catch (_com_error e){AfxMessageBox(_T("搜索失败!"));return;}
}

VS2013在MFC中使用ADO方法操作Access2013数据库 配套的源码下载

VS2013在MFC中使用ADO方法操作Access2013数据库相关推荐

  1. VS2015在MFC中使用ADO方法连接Access2013数据库

    十月份导师的项目启动,自己的任务是移植一套师兄已经用VC++6.0做了百分之七八十的测量系统.正所谓万事开头难,加上只有C语言基础,简直是束手无策.幸而有师兄的指导,但毕竟师兄只是说个大概的方法,不可 ...

  2. python使用方法-在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  3. python脚本怎么使用_在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  4. VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET数据访问接口

    一.ADO.NET概述 Ado.net基于XML和离线计算模型. ADO.net的两个核心组件:.Net数据提供程序.DataSet. .net数据提供程序用来与数据库的连接,如SQLServer.n ...

  5. MFC中使用OLE/COM操作EXCEL的方法

    使用OLE的方法操作EXCEL,首先计算机必须安装excel,这样才会有接口暴露出来.本次使用大神封装好的类. excel作为OLE/COM库插件,定义好了各类交互接口,而且这些接口是跨语言的,可以导 ...

  6. vs使用ado连接oracle,在VS环境下以ADO方式操作Oracle数据库

    利用ADO引擎方式访问Oracle数据库的实现方法: 定义数据库头文件为CDBOperation.h #pragma once #import "C:\Program Files\Commo ...

  7. Electron中使用sql.js操作SQLite数据库

    推荐sql.js--一款纯js的sqlite工具. 一.关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite ...

  8. VB.NET学习笔记:ADO.NET操作ACCESS数据库——OleDbDataAdapter的Update方法更新数据库的秘密(行状态RowState和行版本 DataRowVersion)

    在<数据集DataSet数据管理(DataAdapter查询更新数据库)>一文中提到可以使用OleDbDataAdapter对象的Update方法还可将对 DataSet 所做的更改解析回 ...

  9. shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法

    实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...

最新文章

  1. Mybatis之通用Mapper使用
  2. 青源LIVE第22期|旷视刘松涛:YOLOX,高性能目标检测的最新实践
  3. 数据结构:单向环形链表
  4. Android 博客园客户端 (八) 下拉刷新、分页,AsyncTask
  5. 操作系统:166个Linux实用命令,太全了!
  6. 荣耀30 Pro+价格曝光:顶配真的高攀不起!
  7. [Linux]Red Hat Linux 9.0环境下架设Web服务器[2]
  8. test Math
  9. [SDOI2016]储能表——数位DP
  10. 免费的社工机器人?查看是否自己被社工?
  11. oracle经纬度换算成xy坐标,xy坐标转换经纬度【处置步骤】
  12. 离散-关系矩阵乘法运算
  13. nmap 扫描 STATE 显示closed
  14. uni-app项目配置UrlSchemes在外部打开APP
  15. 有没有测试水泥稳定性的软件,水泥稳定碎石基层的试验检测项目有哪些?急 急 急!!!...
  16. 助力无人船舶,开拓水上智能
  17. 一般游戏原画制作的步骤是什么
  18. 完美解决“未能装载Office文档控件。请使用Internet Explorer(6.0+)浏览器并检查浏览器的安全设置。”的方案
  19. 买服务器不做网站需要备案吗,买服务器需要备案吗
  20. C++17类型std::variant介绍

热门文章

  1. 转载 ----MAVEN相关学习
  2. [JAVA]文件和IO
  3. GUI编程之拨号盘按键音识别的学习与实现
  4. 合作式智能运输系统 车用通信系统 应用层及应用数据交互标准
  5. vue-cli安装、初始化项目
  6. STM32F429移植STemWin,STemWin函数应用
  7. CS喀秋莎无水印全版本下载
  8. mysql tcmalloc_mysql安装tcmalloc
  9. MetaQ中间件原理浅析
  10. PMP模拟试题每日5题(4月22日)