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

(VS2013+Access2003)
1. 新建一个基于对话框的MFC项目:ADO_Access0306
在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_Access0306Dlg.h类里的public下添加 :

	_ConnectionPtr  m_pConnection;  //连接access数据库的链接对象 
	_RecordsetPtr  m_pRecordset;  //结果集对象
	_CommandPtr	 m_pCommand;

3. 初始化数据库连接:

在ADO_Access0306Dlg.cpp文件的OnInitDialog()初始化成员函数里添加如下代码:

try
	{
		CoInitialize(NULL);
		m_pConnection = _ConnectionPtr(__uuidof(Connection));
		m_pConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;\
										  Data Source=bPR2011DB.mdb;Persist Security Info=False;Jet OLEDB:Database Password=ssbio123", "", "", adModeUnknown;//这里照着老版的书上写Provider=Microsoft.Jet.OLEDB.4.0;Data
		m_pConnection->Open("", "", "", adConnectUnspecified);
		AfxMessageBox(_T("数据库连接成功!"));
	}
	catch (_com_error e)
	{
		AfxMessageBox(_T("数据库连接失败!"));
		return FALSE;
	}

注:对应路径下必须有bPR2011DB.mdb文档。
在这里插入图片描述

编译运行后显示:
在这里插入图片描述

5. 添加按钮:
(1)连接数据库成功后,我们新建按钮实现创建新表student,对应BUTTON1为响应按钮 :
在这里插入图片描述
双击BUTTON1 按钮,添加事件处理程序:

_variant_t RecordsAffected;
	try
	{
	CString TableName;
	TableName = "student";
	_bstr_t bstr1 = "CREATE TABLE ";
	_bstr_t bstr2 = (_bstr_t)TableName;
	_bstr_t bstr3 = "(id text, sex text, age INTEGER)";
	_bstr_t CommandText = bstr1 + bstr2 + bstr3;
	m_pConnection->Execute(CommandText, &RecordsAffected, adCmdText);
	MessageBox(_T("创建表成功"));
	}
	catch (_com_error *e)
	{
	AfxMessageBox(e->ErrorMessage());
	}

点击按钮BUTTON1 ,响应以上程序,弹出“数据库连接成功!”,点击确定 -> 按钮BUTTON1 -> 弹出“创建表成功”
在这里插入图片描述
在这里插入图片描述

(2)新建按钮实现插入功能,对应BUTTON1 事件处理程序如下:

    _variant_t RecordsAffected;
	CString AddSql;
	AddSql.Format(_T("INSERT INTO student(id,sex,age) VALUES('10','17',1)"));
	try{
		m_pConnection->Execute((_bstr_t)AddSql, &RecordsAffected, adCmdText);
	//	m_pConnection->Execute((_bstr_t)AddSql, 0, adCmdText);上一行和本行效果一样
		AfxMessageBox(_T("添加用户成功!"));
	}
	catch (_com_error e){
		MessageBox(e.Description());
	}

通过查看数据库连接可以看到表格数据:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值