1.头文件
#include <afxdb.h>//数据库类头文件2.定义数据库类
CDatabase m_db;//定义数据库类3.数据库连接及打开
void CAccessDBDlg::OnBnClickedButtonBrowse()
{
// TODO: 在此添加控件通知处理程序代码
// 1、打开文件对话框,选中对应的数据库文件
TCHAR szFilter[] = _T("Access2003数据库文件(*.mdb)|*.mdb|Access2007数据库文件(*.accdb)|*.accdb|所有文件(*.*)|*.*||");
//定义文件过滤器
CFileDialog fileDlg(TRUE, _T(".accdb"), NULL, 0, szFilter, this);//true 为打开对话框,false为另存为
CString filePath;
if (IDOK == fileDlg.DoModal()) {
filePath = fileDlg.GetPathName(); // 获取到选中文件的路径
SetDlgItemText(IDC_EDIT_PATH, filePath);//显示到文本框内
}
// 2、打开数据库
//2.1 判断数据库是否已经打开
if (m_db.IsOpen()) {
m_db.Close();
}
// Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:\Users\yinshunjun\Desktop\country.accdb;(连接字符串)
TCHAR szConnect[1000] = _T("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=");//定义连接字符串数组
wcscat_s(szConnect, filePath);//拼接字符串
wcscat_s(szConnect, _T(";"));//拼接字符串
BOOL result = TRUE;//定义返回值
result = m_db.OpenEx(szConnect, CDatabase::noOdbcDialog);//打开数据库
if (result) {
MessageBox(_T("数据库打开成功"));//弹出窗口
CString sql = _T("SELECT country.[编号], country.[国家], country.[首都], country.[GDP] FROM country ORDER BY country.[编号] ASC");
DispBySql(sql);
}
else {
MessageBox(_T("数据库打开失败"));//弹出窗口
}
}3.程序运行结果


版权声明:本文为flated原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。