如何使用MFC连接Access数据库
(2)为系统添加数据源。打开“控制面板”—>“管理工具”—>“数据源”,选择“系统DSN”,点击右边的“添加”按钮,选择“Microsoft Access Driver(*.mdb)”,点击“完成”,给数据源起个名字,如conn,然后点击下面的“选择”,选择刚才建立好的data.mdb,点击“确定”,就完成了数据源的添加工作。
注:如果是64位的操作系统,在点击“添加”按钮时可能没有Microsoft Access Driver(*.mdb)选项,这时你可以打开C:\Windows\SysWOW64\odbcad32.exe,这里面就有了。
(3)引入ado动态库文件。此时准备工作就已经做好了,接下来就是在MFC对话框工程(本文中工程名以Test为例)中进行数据库连接了。在stdafx.h头文件中添加对ado的支持,引入ado动态库文件,添加以下代码即可:
#import "C:\ProgramFiles\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
BOOL CTestApp::InitInstance()
{
AfxOleInit();
......
}
注:还有另外一种初始化COM环境的方法,
BOOL CTestApp::InitInstance()
{
::CoInitialize(NULL);//在app类中的InitInstance函数中添加
......
::CoUninitialize();//在app类中的InitInstance函数的最后(return之前)添加,释放COM环境
}
(5)在对话框头文件CTestDlg.h的类中声明两个成员变量。
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
(6)接下来就是在对话框初始化的时候连接数据库了。在CTestDlg::OnInitDialog()中添加以下代码:
BOOL CTestDlg::OnInitDialog()
{
// TODO:在此添加额外的初始化代码
try
{
HRESULT hr =m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr =m_pConnection->Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =e:\\data.mdb","","",adModeUnknown);//连接数据库
//hr =m_pConnection->Open("DRIVER={Microsoft Access Driver(*.mdb)};DBQ=e:\\data.mdb;","","",adModeUnknown);//连接数据库
//上面一句中连接字符串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_error e)//捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息
}
}
(7)以上准备工作做好了,就可以在程序中使用m_pConnection,m_pRecordset了。调用示例如下:
void CTestDlg::OnBnClickedButton1()
{
//TODO: 在此添加控件通知处理程序代码
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT* FROM news WHERE id = 174",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t value = m_pRecordset->GetCollect("content");
SetDlgItemText(IDC_EDIT1,(LPCTSTR)_bstr_t(value));
}
注:可将以上步骤简单地总结一下:
第一步:引入ado动态库文件。第二步:初始化COM环境。第三步:创建数据库连接Connection及记录集Recordset。
通过以上步骤,就能让你的客户端和数据库交互了,可以对数据库进行增改删查等。
如何使用MFC连接Access数据库的更多相关文章
- 【.net 深呼吸】连接Access数据库应注意的几点
本地数据库可以有Y种选择,比如Sqlite.SQL Server Express.SQL Local DB.SQL Server CE.Access等,本文老周选用比较著名的Access本地数据库,在 ...
- C#连接Access数据库(详解)
做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以 ...
- ASP.net分别连接SQLserver数据库与连接Access数据库精英版
-------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...
- php连接Access数据库错误及解决方法
<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.m ...
- php连接Access数据库的三种方法
http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/1115/3524.html 虽然不是一个类但先放这儿吧 最近想把一个asp的网站改成 ...
- 三种php连接access数据库方法
种是利用php的pdo,一种是odbc,com接口来与access数据库连接.利用pdo与access数据库连接 $path ="f:fontwww.jb51.netspiderresult ...
- 具体解释VB中连接access数据库的几种方法
在VB中,连接ACCESS数据库的方法主要有以下三种 使用ADO对象,通过编写代码訪问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件高速创建数据库连接 有三种连接方法 ...
- C# 连接 Access 数据库
c#连接Access 数据库需要System.Data, System.Data.OleDb using System.Data using System.Data.OleDb public OleD ...
- JSP连接access数据库
一个用jsp连接Access数据库的代码. 要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数 ...
随机推荐
- Python学习笔记(七)
Python学习笔记(七): 深浅拷贝 Set-集合 函数 1. 深浅拷贝 1. 浅拷贝-多层嵌套只拷贝第一层 a = [[1,2],3,4] b = a.copy() print(b) # 结果:[ ...
- 创建UWP通用应用程序
一,下载VS2015,下载地址:https://www.visualstudio.com/zh-hans/downloads/ VS2015下载地址 二,选择UWP开发工具并安装 VS2015配置 三 ...
- jstl 处理字符串
1.引入 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> ...
- Asp.net MVC4高级编程学习笔记-模型学习第五课MVC表单和HTML辅助方法20171101
MVC表单和HTML辅助方法 一.表单的使用. 表单中的action与method特性.Action表示表单要提交往那里,因此这里就有一个URL.这个URL可以是相对或绝对地址.表单默认的method ...
- linux学习(九)set_uid、set_gid、stick_bit、软链接、硬链接
一.set_uid set_uid其实是一种特殊权限,我们看一个文件: [root@iZ25lzba47vZ ~]# ls -l /usr/bin/passwd -rwsr-xr-x. root ro ...
- Being a Good Boy in Spring Festival(尼姆博弈)
Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 2015上海赛区B Binary Tree
B - Binary Tree Description The Old Frog King lives on the root of an infinite tree. According to ...
- 网络基础一 交换机 路由器 OSI7层模型
第1章 网络基础 1.1 网络的出现 解决计算机通讯的需求 实现计算机信息可以传递 1.2 主机之间实现通讯基本要求(三要素) ①. 需要在两台主机之间建立物理连接,物理连接的方式有网线 光纤线 wi ...
- VS2015编译VS2013工程文件出错
错误:未能从程序集"C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll"加载任务工厂&q ...
- 拓扑排序 HDU - 5695
众所周知,度度熊喜欢各类体育活动. 今天,它终于当上了梦寐以求的体育课老师.第一次课上,它发现一个有趣的事情.在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到NN,在排好队之 ...