MFC---学习笔记_2022.9.25

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版权协议,转载请附上原文出处链接和本声明。