1.新建基于对话框应用程序

找到stdafx.h文件 在末尾加入

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

2.找到对话框app类初始化函数InitInstance()其中加入

::CoInitialize(NULL);
::CoUninitialize();//在return之前

3.在对话框.h文件中定义

_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;

并在.h给对话框添加方法(函数)

void OnInitADOConn(void);void ExitConnect(void);void AddToGrid(void);

4.在对话框中添加list control控件设置auto arrange为true 。alignment为top 。 no label wrap 为true。 view 为 report(报表) sort为none。
添加四个edit控件分别用作学生编号,姓名,性别,学号。四个button控件添加,修改,删除,清空。

list控件添加控制变量m_Grid     edit添加字符串值变量分别为

CString m_ID;CString m_Name;CString m_Sex;CString m_StuID;

5.找到控制面板,管理工具(查看方式小图标就有了),数据源odbc。在这里新建mdb数据库到工程debug里,命名为shujuku.mdb。

6.双击添加按钮写入

UpdateData(TRUE);if(m_ID.IsEmpty()||m_Name.IsEmpty()||m_Sex.IsEmpty()||m_StuID.IsEmpty()){MessageBox("基础信息不能为空!");return;}OnInitADOConn();_bstr_t sql;sql="select * from 表1";m_pRecordset.CreateInstance(__uuidof(Recordset));m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);try{m_pRecordset->AddNew();//添加新行m_pRecordset->PutCollect("编号",(_bstr_t)m_ID);m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);m_pRecordset->PutCollect("性别",(_bstr_t)m_Sex);m_pRecordset->PutCollect("学号",(_bstr_t)m_StuID);m_pRecordset->Update();//更新数据表ExitConnect();}catch(...){MessageBox("操作失败");return;}MessageBox("添加成功");m_Grid.DeleteAllItems();//删除列表控件AddToGrid();

双击修改按钮写入

UpdateData(TRUE);if(m_ID.IsEmpty()||m_Name.IsEmpty()||m_Sex.IsEmpty()||m_StuID.IsEmpty()){MessageBox("基础信息不能为空!");return;}OnInitADOConn();_bstr_t sql;sql="select * from 表1";m_pRecordset.CreateInstance(__uuidof(Recordset));m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);long pos = m_Grid.GetSelectionMark();try{m_pRecordset->Move((long)pos,vtMissing);m_pRecordset->PutCollect("编号",(_bstr_t)m_ID);m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);m_pRecordset->PutCollect("性别",(_bstr_t)m_Sex);m_pRecordset->PutCollect("学号",(_bstr_t)m_StuID);m_pRecordset->Update();ExitConnect();}catch(...){MessageBox("操作失败");return;}MessageBox("修改成功");m_Grid.DeleteAllItems();AddToGrid();

双击删除按钮写入

OnInitADOConn();_bstr_t sql;sql="select * from 表1";m_pRecordset.CreateInstance(__uuidof(Recordset));m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);long pos=m_Grid.GetSelectionMark();try{m_pRecordset->Move((long)pos,vtMissing);m_pRecordset->Delete(adAffectCurrent);m_pRecordset->Update();ExitConnect();}catch(...){MessageBox("操作失败");return;}MessageBox("删除成功");m_Grid.DeleteAllItems();AddToGrid();

双击清除按钮写入

m_ID="";m_Name="";m_Sex="";m_StuID="";UpdateData(FALSE);

写函数AddToGrid

void CMDBDlg::AddToGrid(void)
{OnInitADOConn();//设置查询字符串_bstr_t bstrSQL ="select * from 表1 order by 编号 desc";//创建记录集指针对象实例m_pRecordset.CreateInstance(__uuidof(Recordset));//打开记录集m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);while(!m_pRecordset->adoEOF){m_Grid.InsertItem(0,"");m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("编号"));m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("姓名"));m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("性别"));m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("学历"));//将记录集指针移动到下一条记录m_pRecordset->MoveNext();}//断开数据库连接ExitConnect();
}

写函数oninitadoconn  exitconnect

void CMDBDlg::OnInitADOConn(void)
{try{//创建连接对象实例m_pConnection.CreateInstance("ADODB.Connection");TCHAR pszFileName[MAX_PATH];  GetModuleFileName(NULL,pszFileName,MAX_PATH);  CString psFileName;  psFileName=pszFileName;psFileName=psFileName.Left(psFileName.ReverseFind('\\'));  CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;DBQ=";strConnect+=psFileName;strConnect+="\\shujuku.mdb;";//使用Open方法连接数据库 m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);//AfxMessageBox("数据库连接成功!");}catch(_com_error e){AfxMessageBox(e.Description());}
}void CMDBDlg::ExitConnect(void)
{if(m_pRecordset!=NULL)m_pRecordset->Close();m_pConnection->Close();
}

在对话框.cpp初始化函数中添加代码

m_Grid.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);m_Grid.InsertColumn(0,"编号",LVCFMT_LEFT,110,0);m_Grid.InsertColumn(1,"姓名",LVCFMT_LEFT,110,1);m_Grid.InsertColumn(2,"性别",LVCFMT_LEFT,110,2);m_Grid.InsertColumn(3,"学号",LVCFMT_LEFT,110,3);AddToGrid();

7.编译运行。

MFC ado操作mdb数据库相关推荐

  1. MFC+ODBC操作Access数据库pdf版

    <MFC+ODBC操作Access数据库pdf版> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731370.html

  2. ado连接oracle数据库帮助类,MFC ADO连接Oracle12c数据库 类库文件

    //--------查询示例 start-------- std::string sql = "select * from username"; adoreader=ado.Exe ...

  3. mfc连接oracle12c,MFC ADO连接Oracle12c数据库 类库文件

    Stdafx.h Stdafx.h libado.h libado.h libado.cpp libado.cpp 参考网址如下:http://www.cnblogs.com/livewithnore ...

  4. VC通过ADO操作Access2007数据库

    VC通过ADO操作Access2007数据库 (一)查询表是否存在 1. 修改Access2007权限 (1) "开始"标签,右击"所有表",选择"导 ...

  5. C#操作MDB数据库

    C#操作MDB数据库,包括创建mdb文件,打开连接,读取mdb数据以及存储数据,从mdb数据库中获取表信息以及表字段.表数据信息 using System; using System.Collecti ...

  6. C#操作mdb数据库文件

    C#操作mdb数据库文件 源码如下: namespace CSharpWindowsFormsApplication1 {public partial class Form1 : Form{publi ...

  7. 直接通过ADO操作Access数据库(修改版)

    自身的OLE DB Privider,而且还可以应用所有的ODBC驱动程序.关于OLE DB和ADO的其它详细情况,读者可以自行查阅相关书籍或MSDN,这里就不一一说明了.让我们直接步入主题:如何掌握 ...

  8. C#编程学习51:操作MDB数据库

    首先导入需要的命名空间 using System.Data.OleDb; 然后在界面上添加dataGridView控件和相关按钮 功能点1:将数据库中的数据显示在界面的dataGridView控件上 ...

  9. MFC,ADO方式实现数据库操作

    参考: MSDN数据访问编程 (MFC/ATL): https://msdn.microsoft.com/zh-cn/library/kd4ck1tt.aspx?f=255&MSPPError ...

最新文章

  1. MongoDB学习笔记(入门)
  2. 数据分析师必看:5大概率分布,你了解多少?
  3. 努力就要晒出来,13周年订阅专栏送图书/T恤晒单集结号!!!
  4. 不同函数之间的跳转setjmp和longjmp
  5. 链表c的经典实现(一)
  6. 华为笔记本搭载鸿蒙系统,华为MatePad Pro2入网!预装鸿蒙系统 搭载麒麟9000
  7. Python 3.6学习笔记(一)
  8. linux操作系统权限详解,Linux权限详解
  9. python模块学习之glob模块
  10. 电脑计算器的快捷键_牛!这份金蝶财务软件使用手册+超全快捷键汇总送你,财务收好...
  11. eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)
  12. python怎么学比较有技巧_学python必须知道的30个技巧
  13. 快解析:管家婆C9异地访问解决方案
  14. 通过crontab定时执行shell脚本教程
  15. jsp+ssm计算机毕业设计学校缴费系统【附源码】
  16. 网页打印与标准纸张换算 px与cm换算
  17. GIT常见问题及命令指南
  18. VBA代码助手,代码库收藏管理工具,代码对齐,破解Excel工程密码,设置隐藏模块
  19. 西门子PC ADAPTER USB A2无法连接PLC的坑
  20. js 混合排序(同时存在数字、字母、汉字等)

热门文章

  1. 计算机视觉:图片的灰度处理和颜色反转
  2. vue3使用vite+setup+ts写一个初级前端项目
  3. 什么是c/c++运行时库
  4. 电磁场与电磁波(二、电磁场的基本规律)
  5. arcgis android gif,一种基于动态地图符号的移动GIS可视化方法与流程
  6. 使用SuperMap iDesktopX数据迁移工具迁移地图文档和符号
  7. stata三天写论文!截面工具变量空间计量模型实战
  8. html5 报名页面,h5报名页性能优化总结
  9. 【ArcGIS Pro微课1000例】0022:基于DEM进行流域分析生成流域图
  10. 股票数据API接口合集:腾讯股票接口、麦蕊智数股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据