VS2010下MFC通过ADO连接Access数据库

本文详细介绍如何使用ActiveX Data Objects (ADO) 进行数据库操作,包括连接Access数据库、执行SQL语句、读取数据记录及关闭连接等步骤。文中提供了具体的代码示例,帮助读者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.工程头文件“stdafx.h”末尾加入以下语句

    #import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

该语句引入支持ADO的组件类型库(*.tlb):

2.初始化组件,可在主程式的OnInitDialog函数中加入以下代码:

    if (!AfxOleInit())
    {
         AfxMessageBox(_T("ADO初始化失败!"));
         return FALSE;
    }

组件(COM)的初始化有两种方式,以上是MFC专用的COM初始化方法,比较方便,结束时关闭COM组件不需要另写代码。还有一种通用的初始化方式:

CoInitialize(NULL);          //初始化组件
CoInitialize();              //关闭组件

3.要使用数据库连接的类中加入三个成员变量

 _ConnectionPtrm_pConnection;   //用于打开、关闭数据库连接
 _variant_tRecordsAffected;     //用_ConnectionPtr和_RecordsetPtr来执行任务
 _RecordsetPtrm_pRecordset;     //用于打开数据库内的数据表,并对表内数据进行操作

4.连接数据库、数据表

m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open((_bstr_t)ConnectionString,"","",adModeUnknown);
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString strSQL =_T(“SLECT * FROM ”) + _T(“你的数据表名字”);
m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(100),
                    m_pConnection.GetInterfacePtr(),
                    adOpenStatic,
                    adLockOptimistic,
                    adCmdText
                  ); 

其中,ConnectionString为连接字符串,后面详解

5.使用m_pRecordset对数据库进行诸如插入、修改、删除等操作

m_pRecordset->AddNew();
m_pRecordset->Move();
m_pRecordset->MoveFirst();
m_pRecordset->GetCollect();
m_pRecordset->PutCollect();
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();

6.关闭库连接

if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection= NULL;
}

关于ConnectString:

如果连接的是Access2003以前版本(mdb格式)数据库,ConnectionString这样写:

Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurity Info=False;Jet OLEDB:Data Source=strPathName;Database Password=strPassword

如果连接的是Access2007版本(accdb格式)数据库,ConnectionString这样写:

Provider=Microsoft.ACE.OLEDB.12.0;PersistSecurity Info=False;Jet OLEDB:Data Source=strPathName;Database Password=strPassword

其中strPathName是数据库目录,比如C:\TestDB.mdb,strPassword是数据库密码;
不同版本连接串不同的原因是Jet连接器(Microsoft.Jet.OLEDB.4.0)只识别mdb格式的数据库文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值