失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > vs MFC连接及操作access()数据库(ADO)

vs MFC连接及操作access()数据库(ADO)

时间:2019-11-07 07:03:19

相关推荐

vs MFC连接及操作access()数据库(ADO)

最近想写个图书管理软件,用到了数据库,但是由于是小白,弄了好半天才把数据库搞明白。虽然网上有一些教程,但大多都是长长的文字叙述,所以想写一个图文版的连接教程并把这两天的经验记录下来。

1、首先打开access(本人用的是版本),新建一个空白的数据库,并填入信息,如下图:

关闭此表,并重命名(例如test)。

2、打开vs,新建一个mfc工程名为managetest,在可视化界面中添加两个Edit control 控件,用来显示数据库中的信息,添加一个button按钮,用来触发。如下图。

3、在头文件stdafx.h中添加下面语句来支持ADO的组件类型库

#import"c:\programfiles\commonfiles\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF1")//adoEOF可以改成别的,不同的项目里面最好改成不一样的。

ps:如果stdafx.h加载出错,解决办法 /lphbtm/article/details/50730807

4、切换到managetest.cpp中的BOOL CBookManageApp::InitInstance()函数中添加一下代码,用以初始化COM。

if(!AfxOleInit())

{

AfxMessageBox(_T("OLE初始化出错!"));

return FALSE;

}

5、切换到managetestDlg.cpp,在步骤2中的按钮控件的回调函数中添加一下代码。

_ConnectionPtr m_pConnection;//ConnectionPtr指针用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句

_RecordsetPtr m_pRecordset;//_RecordsetPtr智能指针,可以用来打开库内数据表,并可以对表内的记录、字段等进行各种操作

CString csSQLstr;

CString bookid;

CString bookname;

csSQLstr ="SELECT * FROM test";//test 为步骤一种数据库新建的表名。

try

{

m_pConnection.CreateInstance(__uuidof(Connection));//创建ADO连接

m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Database1.accdb","","",adModeUnknown);

//将数据库文件放在与代码文件相同的目录下,data source的赋值即可写成上面语句中的形式,

//具体provider 与 data source的值可参考/u012388338/article/details/39393105

}

catch(_com_error e)

{

AfxMessageBox(_T("数据库连接失败,确认数据库db.mdb是否在当前路径下!"));

return;

}

m_pRecordset.CreateInstance(__uuidof(Recordset));

try

{

m_pRecordset->Open((_bstr_t)csSQLstr,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);

//打开一个记录集(test表),通过这个记录我们可以进行查询,插入,删除等操作。

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage());

}

bookid=m_pRecordset->GetCollect("BookID");

//得到test表中BookID的第一个值,这是由于打开数据集后,指针在这个记录集的开头,

//可以通过movefist,movelast,movenext操作移动指针位置,getcollect可以读取记录集中的信息。

bookname = m_pRecordset->GetCollect("BookName");

SetDlgItemText(IDC_BookID,bookid); //将得到的信息显示在文本框中

SetDlgItemText(IDC_BookName,bookname);

m_pRecordset->Close();//关闭记录集

m_pRecordset = NULL;

m_pConnection->Close();//断开数据库连接

m_pConnection= NULL;

6、运行,点击显示,得到结果

7、说明

本文只是简单介绍了下mfc与access的连接及简单操作。对于其中有些东西的解释不是很完整,也没有能力解释,望见谅。

参考:

除文中提到的两篇外,

/chaoguodong/article/details/7663877 mfc连接access数据库 ,介绍了ADO的概念,添加库的说明及ADO的操作代码

/s/blog_6da8e3ef0101fzyo.html ADO操作ACCESS数据库的一些心得

/html/itweb/0826/81725_81723_81707.htm MFC利用ADO连接ACCESS数据库及其操作数据库的方法,展示了插入,删除等操作的详细代码

如果觉得《vs MFC连接及操作access()数据库(ADO)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。