码迷,mamicode.com
首页 > 数据库 > 详细

MFC使用Access数据库

时间:2018-12-22 20:45:21      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:mfc   连接   ica   recordset   失败   对话   mes   类型   rom   

1. 除了在新建工程的时候指定数据源和数据源中的数据表,还可以自己连接数据源。更灵活。

/*   1、新建一个基于对话框的MFC工程
     2、添加编辑控件,并关联CString类型的变量
     3、在CxxxDlg.h中,加入 #include "Afxdb.h"//支持数据库
         在CxxxDlg.h中,添加成员变量 CDatabase m_DB; CRecordset m_pSet;
     4、添加一个按钮IDC_CONNECT,并双击添加按钮的函数OnConnect()如下
*/
void CAccessExample10Dlg::OnConnect() 
{
	m_pSet = new CRecordset(&m_DB);
	if(!m_DB.OpenEx(_T("DSN=StudentInfo"),0)) //链接数据源
	{
		MessageBox("打开数据源失败!","提示");
		return;
	}
	if(!m_pSet->IsOpen())
	{
		m_pSet->Open(CRecordset::dynaset, _T("Select * from tb_clientInfo")); //打开数据库中的表tb_clientInfo
	}
	if(m_pSet->IsEOF())
	{
		MessageBox("记录集没有记录!","提示");
		return;
	}
	//把第一个记录显示
	m_pSet->MoveFirst();
	m_pSet->GetFieldValue((short)0,m_StuID);
	m_pSet->GetFieldValue((short)1,m_StuName);
	m_pSet->GetFieldValue((short)2,m_StuGradYear);
	UpdateData(FALSE);
} 

  添加,第一条记录、最后一条记录、下一条记录、上一条记录的按钮,并分别添加函数,如下

void CAccessExample10Dlg::OnRecordFirst() 
{
	// TODO: Add your control notification handler code here
	m_pSet->MoveFirst();
	m_pSet->GetFieldValue((short)0,m_StuID);
	m_pSet->GetFieldValue((short)1,m_StuName);
	m_pSet->GetFieldValue((short)2,m_StuGradYear);
	UpdateData(FALSE);
}

void CAccessExample10Dlg::OnRecordNext() 
{
	// TODO: Add your control notification handler code here
	m_pSet->MoveNext();	
	if(m_pSet->IsEOF())
	{
		MessageBox("已经到达最后一条记录!","提示");
		m_pSet->MovePrev();
		return;
	}

	m_pSet->GetFieldValue((short)0,m_StuID);
	m_pSet->GetFieldValue((short)1,m_StuName);
	m_pSet->GetFieldValue((short)2,m_StuGradYear);
	UpdateData(FALSE);
}

void CAccessExample10Dlg::OnRecordPrev() 
{
	// TODO: Add your control notification handler code here
	m_pSet->MovePrev();
	if(m_pSet->IsBOF()) // 判断记录集是否已经定位在第一个记录前
	{
		MessageBox("已经到达第一条记录!","提示");
		m_pSet->MoveNext();
		return;
	}
	m_pSet->GetFieldValue((short)0,m_StuID);
	m_pSet->GetFieldValue((short)1,m_StuName);
	m_pSet->GetFieldValue((short)2,m_StuGradYear);
	UpdateData(FALSE);
}

void CAccessExample10Dlg::OnRecordLast() 
{
	// TODO: Add your control notification handler code here
	m_pSet->MoveLast();
	m_pSet->GetFieldValue((short)0,m_StuID);
	m_pSet->GetFieldValue((short)1,m_StuName);
	m_pSet->GetFieldValue((short)2,m_StuGradYear);
	UpdateData(FALSE);
}

  

MFC使用Access数据库

标签:mfc   连接   ica   recordset   失败   对话   mes   类型   rom   

原文地址:https://www.cnblogs.com/htj10/p/10162221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!