VS2013在MFC中使用ADO方法操作Access2013数据库

1. 首先创建一个基于对话框的MFC应用程序ADO_ACCESS.sln.然后在stdafx.h头文件末尾添加(网上有说在某个#include后面的添加的,也有说在合适位置添加的,我这里直接添加在最末尾)

win32位系统添加

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

win64位系统添加

#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
添加完成后#import下面会出现红色波浪线提示错误,不用理会,过会儿会消失。
2. 在ADO_ACCESSDlg.h类里的public下添加
_ConnectionPtr m_pConnection;//连接access数据库的链接对象
_RecordsetPtr m_pRecordset;//结果集对象
3. 初始化数据库连接。 在ADO_ACCESSDlg.cpp文件的OnInitDialog()初始化成员函数里添加如下代码:
	// TODO:  在此添加额外的初始化代码
	try{

		CoInitialize(NULL);
		m_pConnection = _ConnectionPtr(__uuidof(Connection));
		m_pConnection->ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\\mfc_access.accdb;";
		m_pConnection->Open("", "", "", adConnectUnspecified);
	}
	catch (_com_error e){
	
		AfxMessageBox(_T("数据库连接失败!"));
		return FALSE;
	}

如果选择win32 安装office 32位

如果选择x64 安装office 64位

4. 连接数据库成功后,我们新建四个按钮分别实现增加、删除、修改、查询分别对应BUTTON1 - BUTTON4

增加

//增加
void CADO_ACCESSDlg::OnBnClickedButton1()
{
	// TODO:  在此添加控件通知处理程序代码
	_variant_t RecordsAffected;
	CString AddSql;
	AddSql.Format(_T("INSERT INTO userInfo(name,sex,age) VALUES('小花','女',12)"));

	try{
		m_pConnection->Execute((_bstr_t)AddSql, &RecordsAffected, adCmdText);
		AfxMessageBox(_T("添加用户成功!"));
	}
	catch (_com_error* e){
		AfxMessageBox(_T("添加用户失败!"));
	}
} 

删除

//删除
void CADO_ACCESSDlg::OnBnClickedButton2()
{
	// TODO:  在此添加控件通知处理程序代码
	CString str;
	try
	{
		str.Format(_T("DELETE from userInfo where id=2"));
		_variant_t RecordsAffected;
		m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);
		AfxMessageBox(_T("删除成功!"));
	}
	catch (_com_error*e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}

修改

//修改
void CADO_ACCESSDlg::OnBnClickedButton3()
{
	// TODO:  在此添加控件通知处理程序代码
	CString str;
	try
	{
		str.Format(_T("update userInfo set name='小草' where id=3"));
		_variant_t RecordsAffected;
		m_pConnection->Execute((_bstr_t)str, &RecordsAffected, adCmdText);
		AfxMessageBox(_T("修改成功!"));
	}
	catch (_com_error*e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}
查询

//查询
void CADO_ACCESSDlg::OnBnClickedButton4()
{
	// TODO:  在此添加控件通知处理程序代码
	UpdateData(true);
	CString strName;
	CString strSex;

	try
	{
		m_pRecordset.CreateInstance(__uuidof(Recordset));
		CString search_sql;
		search_sql.Format(_T("SELECT * FROM userInfo"));
		m_pRecordset = ((CADO_ACCESSDlg*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText);
		while (!m_pRecordset->adoEOF)
		{
			strName = m_pRecordset->GetCollect("name").bstrVal;
			strSex = m_pRecordset->GetCollect("sex").bstrVal;
			m_pRecordset->MoveNext();
		}

		m_pRecordset->Close();
	}
	catch (_com_error e)
	{
		AfxMessageBox(_T("搜索失败!"));
		return;
	}
}
VS2013在MFC中使用ADO方法操作Access2013数据库 配套的源码下载

  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaveBobo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值