VC++下封装ADO类以及使用方法
操作系统: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.h */
- class C测试1App : public CWinApp
- {
- public:
- virtual int ExitInstance();
- }
- /* 测试1.cpp */
- BOOL C测试1App::InitInstance()
- {
- CoInitialize(NULL);
- }
- int C测试App::ExitInstance()
- {
- CoUninitialize();
- return CWinApp::ExitInstance();
- }
5.在对话框(工程基于对话框)头文件添加"ado.h",在类的声明里添加对象。并且在实现文件里面的OnInitDialog函数连接数据库。
- #include "ado.h"
- class C测试1Dlg : public CDialog
- {
- protected:
- CAdoConnection m_adoConnection;
- CAdoRecordSet m_adoRecordSet;
- }
- /* 测试1Dlg.cpp : 实现文件 */
- BOOL C测试1Dlg::OnInitDialog()
- {
- if (m_adoConnection.ConnectSQLServer("127.0.0.1","vc_sqlexample","sa","wjs1314"))
- {
- m_adoRecordSet.SetAdoConnection(&m_adoConnection);
- m_adoRecordSet.SetCursorLocation();
- m_adoRecordSet.Open("student", adCmdTable);
- m_adoConnection.BeginTrans();
- UpdateRecord(TRUE);
- }
- else
- {
- MessageBox("数据库连接失败!");
- }
- }
6.为控件添加变量(右键控件添加变量),和一个显示数据的函数,还有上一条记录、下一条记录的按钮功能
- class C测试1Dlg : public CDialog
- {
- public:
- COleDateTime m_strBirth;
- CString m_strBrief;
- CString m_strStuId;
- CString m_strName;
- CString m_strSex;
- BOOL UpdateRecord(BOOL bLoad = TRUE);
- }
- BOOL C测试1Dlg::UpdateRecord(BOOL bLoad)
- {
- if (m_adoRecordSet.GetRecordCount() < 1) return FALSE;
- if (bLoad)
- {
- if (!m_adoRecordSet.GetCollect("stuId", m_strStuId)
- || !m_adoRecordSet.GetCollect("stuName", m_strName)
- || !m_adoRecordSet.GetCollect("stuSex", m_strSex)
- || !m_adoRecordSet.GetCollect("birth", m_strBirth)
- || !m_adoRecordSet.GetCollect("brief", m_strBrief) )
- {}
- UpdateData(FALSE);
- return TRUE;
- }
- }
- void C测试1Dlg::OnBnClickedButton1()
- {
- // TODO: 在此添加控件通知处理程序代码
- UpdateData();
- if (m_adoRecordSet.MovePrevious())
- UpdateRecord();
- }
- void C测试1Dlg::OnBnClickedButton2()
- {
- // TODO: 在此添加控件通知处理程序代码
- UpdateData();
- if (m_adoRecordSet.MoveNext())
- UpdateRecord();
- }
7.启动数据库,运行编译程序。
http://blog.csdn.net/akof1314/article/details/4657780
VC++下封装ADO类以及使用方法的更多相关文章
- VC++下使用ADO操作数据库
VC++下使用ADO操作数据库主要要用到 _ConnectionPtr,_CommandPtr,_RecordsetPtr三个ADO对象指针,我查找了相关资料,发现网上源码很多,但是都相对凌乱,于是自 ...
- 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。
在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...
- [转]VC++下使用ADO操作数据库
(1).引入ADO类 1 2 3 #import "c:program filescommon filessystemadomsado15.dll" no_namespace re ...
- VC中使用ADO操作数据库的方法 SQL2000
(1).引入ADO类 #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ ...
- VC中使用ADO操作数据库的方法
源地址:http://blog.csdn.net/xiaobai1593/article/details/7459862 准备工作: (1).引入ADO类 #import "c:\progr ...
- Python3.9的http.client.py下的HTTPMessage类中的方法getallmatchingheaders的bug修复建议
在官方网站已经提交相关issue,不过目前看好像还没有修复.具体的bug位置为: http文件夹下的client.py文件,代码位置为:类HTTPMessage下的方法getallmatchinghe ...
- .Net core 下的ConfigurationManager类正确引用方法
大家在项目中经常会用到需要引用配置文件的情况,这也是我偶然间遇到的问题,菜鸟一枚,如有需纠正多谢指点. 正题 在不先引用using的情况下直接写 ConfigurationManager.AppSet ...
- SpringMVC 自动封装枚举类的方法
springmvc默认无法自动封装枚举类,解决方法如下: 1.枚举类 public enum GoodsPromoteEnum { /** * 0 精品 */ fine("精品", ...
- ado.net的简单数据库操作(二)之封装SqlHelperl类
今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...
随机推荐
- Js替换地址栏参数
开了博客竟然有9个月没在来写过了.真是惭愧.今天需要用到一个用js替换地址栏参数的的功能.就自己用JS自己写了一个简单的函数.贴出来仅供大家参考.代码都写了注释.如下: /* js替换URL参数值,无 ...
- springmvc前后端传值总结
1 前端向后端传参 1.1 普通方式传参 1.1.1 页面 参数需要解析成json对象:JSON.parse(JSON.stringify(query)) $.getJ ...
- 读取tomcat下的文件夹路径
背景:测试的为了每次部署时清缓存,将temp文件夹也删了,导致系统中有些excel导出功能用不了. 解决:新建一个监听文件,在系统启动时,判断temp文件夹是否存在,不存在就新建. temp文件夹的作 ...
- Swift 2.0基本语法
内容包括:01变量&常量 02分支 03循环 04字符串 05数组 06字典 07函数 01变量&常量 //: Playground - noun: a place where peo ...
- win10 删除资源管理器中的6个文件夹
细心的朋友会发现,在Win10此电脑(计算机)中,除了我们最熟悉的磁盘外,还新增了视频.图片.文档.下载.音乐.桌面这6个文件夹.不少网友举觉得这6个文件夹其实并没什么用,想要去除删掉.那么Win10 ...
- ES6的promise的学习
1.Promise的含义: Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Pro ...
- [ADO.NET]写入数据
关键字:.NET,SQL SERVER,SQLBULKCOPY 插入一条数据的操作(SqlCmd). public void InsertOneIntoSourceDB() { if (DBConne ...
- [PR & ML 4] [Introduction] Model Selection & The Curse of Dimension
这两部分内容比较少,都是直觉上的例子和非正式的定义,当然这本书中绝大多数定义都是非正式的,但方便理解.后面深入之后会对这两个章节有详细的阐述.
- How to Change Password Complexity Requirements in Windows XP
Original Link: http://www.ehow.com/how_4812793_password-complexity-requirements-windows-xp.html#ixzz ...
- jQuery Mobile里xxx怎么用呀?(控件篇)
jQuery Mobile里都有什么控件? http://api.jquerymobile.com/category/widgets/ jQuery Mobile里slider控件的change事件怎 ...