VS2015+Access2016编写数据库程序

Access是微软在Office中集成的一种桌面式的数据库系统,在一些规模不大的数据库应用中,使用Access还是比较方便的。
在使用VS与Access编程的时候,还是有一些问题要注意,这里记录备查。本人使用的VS2015,C++语言,Access2016数据库。

1 环境设置

要在VS应用程序中使用ADO访问数据库,需要在stdafx.h的最后加上以下语句:

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

2 连接字符串

对于目前的Access版本,连接字符串为:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DBPath

以上语句中的DBPath要替换成你自己数据库文件的真正路径,例如

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\MyDBApp\\Data\\Test.accdb

实际上,这个字符串可以用VS的工具来构建,方法是:
在VS2015中,菜单<工具>——<连接到数据库>,弹出<选择数据源>窗口,选择<Microsoft Access 数据库文件>,点击<继续>按钮。
在弹出的<添加连接>页面,数据库文件名项目浏览找到你的数据库文件,之后可以点击<测试连接>按钮,正常应该弹出提示"测试连接成功",如果这个测试通不过,需要检查其它问题。
测试连接成功后,点击<高级>按钮,弹出<高级属性>页面,最下面一行即显示了连接字符串,如下图所示,拷贝下来可以放到程序中直接用。
在这里插入图片描述

3 连接数据库

参照以下语句,即可正确连接数据库
头文件声明:

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

实现文件:

bool CMyDB::OpenConn(char* dbname)
{
	try {
		CoInitialize(NULL);
		if (dbname != NULL)
			sprintf_s(g_pDBName, "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s", dbname);
		m_pConnection.CreateInstance("ADODB.Connection");  //创建连接对象实例
		_bstr_t strConnect = g_pDBName;
		m_pConnection->Open(strConnect, "", "", adModeUnknown); //打开数据库
	}
	catch (_com_error e) {
		AfxMessageBox(e.Description());
		return false;
	}
	return true;
}

4 程序配置

不能用X64配置,如果用X64配置,连接数据库时不成功,提示:“未找到提供程序,该程序可能未正确安装”。改为用WIN32配置即可。

附:几个备忘的技巧

1) 备忘的SQL语句

以下是经常用到,但是总记不住的语句,这里记下。
取得刚刚添加的记录的编号的语句

select @@identity

2) 字符串内容里包含单引号(’)的处理

字符串里包含单引号(’)时,作为查询条件或插入值时会出错,此时把字符串里的单引号(’)替换成双单引号(’’)即可。

猜你喜欢

转载自blog.csdn.net/hangl_ciom/article/details/97933147