MFC使用Access数据库
Posted htj10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC使用Access数据库相关的知识,希望对你有一定的参考价值。
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数据库的主要内容,如果未能解决你的问题,请参考以下文章