VS2015 MFC对access2010数据库的增删改查,子对话框修改,双击修改,combobox查询。

VS2015 MFC对access2010数据库的增删改查
特点:1,把access内容导入list control后,可以实现双击修改list control的同时,修改数据库,也可以通过子弹窗修改数据库
2,查询可以通过combo—box实现便捷查询
3,删除可以通过单击listcontrol中的任意一行实现删除,如果单击到空白处,会提示

首先准备vs2015与access2010;
先连接数据库:网上方法有很多,我的office是64位的,所以debug,x64。!!!!!!否则连不上,如果你的机子上是32位的office,那就x86。

下面展示 连接数据库的代码。

try {

		CoInitialize(NULL);
		m_pConnection = _ConnectionPtr(__uuidof(Connection));
		m_pConnection->ConnectionTimeout = 5; //设置超时时间为5秒
		m_pConnection->ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=access.accdb;";
		m_pConnection->Open("", "", "", adConnectUnspecified);
		
		/*_variant_t   RecordsAffected;
		CString strSql;
		BSTR bstrSQL;
		strSql = _T("CREATE TABLE acces(ID INTEGER,图书编码 REAL,图书名称 REAL,图书作者 REAL,出版社名 REAL )");//INTEGER
		bstrSQL = strSql.AllocSysString();
		m_pConnection->Execute(bstrSQL, &RecordsAffected, adCmdText);*/
	
		AfxMessageBox(_T("数据库连接成功"));
	}
	catch (_com_error e) {
		//m_pConnection->ConnectionTimeout = 5; //设置超时时间为5秒
		AfxMessageBox(_T("数据库连接失败!"));
		return FALSE;
	}

一定要分清数据库和表,我这里在工程目录下放置数据库,我的数据库名字是access,数据库可以有很多表,我这次操作的表名是acces,(少一个s)。当然你可以任意名字
一定要分清数据库和表,我这里在工程目录下放置数据库,我的数据库名字是access,数据库可以有很多表,我这次操作的表名是acces,(少一个s)。当然你可以任意名字。
下面展示 创建list control表头的代码

CoUninitialize();
	// TODO:  在此添加额外的初始化代码
	CRect rect;

	// 获取编程语言列表视图控件的位置和大小
	m_list.GetClientRect(rect);

	// 为列表视图控件添加全行选中和栅格风格   
	m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

	// 为列表视图控件添加三列   
	m_list.InsertColumn(0, _T("ID"), LVCFMT_CENTER, rect.Width() / 5, 0);
	m_list.InsertColumn(1, _T("图书编码"), LVCFMT_CENTER, rect.Width() / 5, 0);
	m_list.InsertColumn(2, _T("图书名称"), LVCFMT_CENTER, rect.Width() / 5, 1);
	m_list.InsertColumn(3, _T("图书作者"), LVCFMT_CENTER, rect.Width() / 5, 2);
	m_list.InsertColumn(4, _T("出版社名"), LVCFMT_CENTER, rect.Width() / 5, 3);

下面展示把access内容导入list control的代码

izengjia=1;//每次导入都置1,这个变量也是为了减少bug
	m_list.DeleteAllItems();//清空列表
	_variant_t RecordsAffected;
	CString  ha;
	try {
		ha = "select * from acces";    //查询ZRN表里的数据
		m_pRecordset = m_pConnection->Execute(ha.AllocSysString(), &RecordsAffected, adCmdText);   //获取记录集
		int i = 0;
		while (!m_pRecordset->adoEOF)
		{
			id = (char*)(_bstr_t)m_pRecordset->GetCollect("ID");
			bm = (char*)(_bstr_t)m_pRecordset->GetCollect("图书编码");    //xm,dz,yb 分别为你自己数据库的列名
			mc = (char*)(_bstr_t)m_pRecordset->GetCollect("图书名称");     //把这一记录中数据库里dz列下的值给字符串dz
			zz = (char*)(_bstr_t)m_pRecordset->GetCollect("图书作者");
			cb = (char*)(_bstr_t)m_pRecordset->GetCollect("出版社名");
			m_list.InsertItem(i, _T(""));
			m_list.SetItemText(i, 0, id);     //添加到list Control 中的第i行的第一列下
			m_list.SetItemText(i, 1, bm);     //添加到list Control
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值