操作系统:windows 7
软件环境:visual studio 2008 、Microsoft SQL 2005
本次目的:介绍一个已经封装的ADO类,简单说明怎么导入使用

首先声明一下,这个封装的ADO类是在【vc知识库 】下载的,因为最近在数据库课程设计,所以对vc++下使用ADO连接数据库不是很了解,故若是本文有错误的地方的,请不吝指出。具体的ADO类各个封装功能请进入【原文地址 】查看。在此仅介绍使用此ADO封装类的入门,如连接数据库,显示记录等。一个测试例子如下:

使用步骤:
1.先从【这里 】下载封装的ADO类,可以用记事本之类的打开里面的文件,对于每个功能已经注释的蛮详细的;
2.准备数据库,可以是SQL 2000 或更高的,在这里我是用SQL 2005,新建一个vc_sqlexample数据库一个student表,格式如下:
 
3.具体的表内容可以随便写,然后新建MFC基于对话框工程(名称为测试1),右键工程名,添加封装的ADO类到工程里面;
4.初始化 COM 环境,添加以下代码:

  1. /* 测试1.h */
  2. class C测试1App : public CWinApp
  3. {
  4. public:
  5. virtual int ExitInstance();
  6. }
  7. /* 测试1.cpp */
  8. BOOL C测试1App::InitInstance()
  9. {
  10. CoInitialize(NULL);
  11. }
  12. int C测试App::ExitInstance()
  13. {
  14. CoUninitialize();
  15. return CWinApp::ExitInstance();
  16. }

5.在对话框(工程基于对话框)头文件添加"ado.h",在类的声明里添加对象。并且在实现文件里面的OnInitDialog函数连接数据库。

  1. #include "ado.h"
  2. class C测试1Dlg : public CDialog
  3. {
  4. protected:
  5. CAdoConnection m_adoConnection;
  6. CAdoRecordSet  m_adoRecordSet;
  7. }
  8. /* 测试1Dlg.cpp : 实现文件 */
  9. BOOL C测试1Dlg::OnInitDialog()
  10. {
  11. if (m_adoConnection.ConnectSQLServer("127.0.0.1","vc_sqlexample","sa","wjs1314"))
  12. {
  13. m_adoRecordSet.SetAdoConnection(&m_adoConnection);
  14. m_adoRecordSet.SetCursorLocation();
  15. m_adoRecordSet.Open("student", adCmdTable);
  16. m_adoConnection.BeginTrans();
  17. UpdateRecord(TRUE);
  18. }
  19. else
  20. {
  21. MessageBox("数据库连接失败!");
  22. }
  23. }

6.为控件添加变量(右键控件添加变量),和一个显示数据的函数,还有上一条记录、下一条记录的按钮功能

  1. class C测试1Dlg : public CDialog
  2. {
  3. public:
  4. COleDateTime m_strBirth;
  5. CString m_strBrief;
  6. CString m_strStuId;
  7. CString m_strName;
  8. CString m_strSex;
  9. BOOL UpdateRecord(BOOL bLoad = TRUE);
  10. }
  11. BOOL C测试1Dlg::UpdateRecord(BOOL bLoad)
  12. {
  13. if (m_adoRecordSet.GetRecordCount() < 1) return FALSE;
  14. if (bLoad)
  15. {
  16. if (!m_adoRecordSet.GetCollect("stuId", m_strStuId)
  17. || !m_adoRecordSet.GetCollect("stuName", m_strName)
  18. || !m_adoRecordSet.GetCollect("stuSex", m_strSex)
  19. || !m_adoRecordSet.GetCollect("birth", m_strBirth)
  20. || !m_adoRecordSet.GetCollect("brief", m_strBrief) )
  21. {}
  22. UpdateData(FALSE);
  23. return TRUE;
  24. }
  25. }
  26. void C测试1Dlg::OnBnClickedButton1()
  27. {
  28. // TODO: 在此添加控件通知处理程序代码
  29. UpdateData();
  30. if (m_adoRecordSet.MovePrevious())
  31. UpdateRecord();
  32. }
  33. void C测试1Dlg::OnBnClickedButton2()
  34. {
  35. // TODO: 在此添加控件通知处理程序代码
  36. UpdateData();
  37. if (m_adoRecordSet.MoveNext())
  38. UpdateRecord();
  39. }

7.启动数据库,运行编译程序。

http://blog.csdn.net/akof1314/article/details/4657780

VC++下封装ADO类以及使用方法的更多相关文章

  1. VC++下使用ADO操作数据库

    VC++下使用ADO操作数据库主要要用到 _ConnectionPtr,_CommandPtr,_RecordsetPtr三个ADO对象指针,我查找了相关资料,发现网上源码很多,但是都相对凌乱,于是自 ...

  2. 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。

    在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...

  3. [转]VC++下使用ADO操作数据库

    (1).引入ADO类 1 2 3 #import "c:program filescommon filessystemadomsado15.dll" no_namespace re ...

  4. VC中使用ADO操作数据库的方法 SQL2000

    (1).引入ADO类 #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ ...

  5. VC中使用ADO操作数据库的方法

    源地址:http://blog.csdn.net/xiaobai1593/article/details/7459862 准备工作: (1).引入ADO类 #import "c:\progr ...

  6. Python3.9的http.client.py下的HTTPMessage类中的方法getallmatchingheaders的bug修复建议

    在官方网站已经提交相关issue,不过目前看好像还没有修复.具体的bug位置为: http文件夹下的client.py文件,代码位置为:类HTTPMessage下的方法getallmatchinghe ...

  7. .Net core 下的ConfigurationManager类正确引用方法

    大家在项目中经常会用到需要引用配置文件的情况,这也是我偶然间遇到的问题,菜鸟一枚,如有需纠正多谢指点. 正题 在不先引用using的情况下直接写 ConfigurationManager.AppSet ...

  8. SpringMVC 自动封装枚举类的方法

    springmvc默认无法自动封装枚举类,解决方法如下: 1.枚举类 public enum GoodsPromoteEnum { /** * 0 精品 */ fine("精品", ...

  9. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

随机推荐

  1. CDN的原理及对SEO的影响

    http://www.williamlong.info/archives/4059.html CDN的概念最早于1995年由美国麻省理工大学提出,是一套能够实现用户就近访问的网络解决方案.具体方法是: ...

  2. Dr.com校园网客户端故障解决方法

    一,登录客户端的时候提示“登录超时失败” 解决办法:单击桌面右下角的联网图标然后右键,打开网络和共享中心,在左侧导航栏中找到更改网络适配器,找到本地连接(或者无线连接),点击右键找到详细信息,看看ip ...

  3. 【html】【9】div布局[div层叠]

    让DIV重叠并按想要顺序重叠需要CSS来实现,即CSS绝对定位进行实现. 重叠样式需要主要CSS样式解释1.z-index 重叠顺序属性2.position:relative和position:abs ...

  4. ajax跨域请求的解决方案

    一直打算改造一下自己传统做网站的形式. 我是.Net程序员,含辛茹苦数年也没混出个什么名堂. 最近微信比较火, 由于现在大环境的影响和以前工作的总结和经验,我打算自己写一个数据,UI松耦合的比较新潮的 ...

  5. attempt to write a readonly database 的解决办法

    这个问题导致我的unity项目崩溃,以至于无法打开. 第一次出现这个问题是因为在Lighting窗口中build按钮下点击了clear all baked datas,导致unity强制退出,并给出上 ...

  6. 简单模拟Hibernate的主要功能实现

    在学习期间接触到Hibernate框架,这是一款非常优秀的O/R映射框架,大大简化了在开发web项目过程中对数据库的操作.这里就简单模拟其底层的实现. /*******代码部分,及其主要注解***** ...

  7. 【nodemailer】 初试

    nodemailer 是什么? 简单的讲nodemailer就是用来发送邮件的.最近的一个项目需要向客户的注册邮箱发送验证连接,研究了一下. 刚开始我以为nodemailer还可以用来接收邮件,看了好 ...

  8. 文件服务——Vsftpd

    文件传输协议(FTP): 能够让用户在互联网中上传.下载文件的文件协议,FTP服务就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行. 通常用户使用FTP客户端软 ...

  9. 关于H5 storage 的一些注意事项以及用法

    在我们使用H5 storage之前,先了解一下storage的介绍吧: Storage模块管理应用本地数据存储,用于应用数据的保存和读取,应用本地数据localStorage,sessionStora ...

  10. 深入分析 Java 中的中文编码问题(转)

    几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言 ...