




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本教程是实现c+MFC连接ACCESS数据库教程胡绍利前提介绍:我用的是VS2012编写C+程序,ACCESS使用2003版本,测试数据库为FACEDATA.MDF具体教程如下:1. 首先,新建MFC工程 ,取名字MyProgram2. 点击下一步,知道出现以下界面,加应用程序类型改为基于对话框3. 再点击完成,即成功创建MFC工程4. 之后会生成如下页面,为显示框页面。 你可以通过拖拽右边工具栏的控件来添加控件。如果要查看显示框界面的话,可以点击资源试图来查看,一般都是在左下角位置。5. 由于本教程是连接数据库,所以,就简单添加一个查找和插入的功能。加入控件Button 和 Edit con
2、trol6. 对于控件的操作,如创建连接数据库的Button,可以点击右键,选中属性来修改控件信息,一般要改的信息有ID,caption 其他属性需要的话,自己百度去。7. 修改完成后,再通过双击界面上的连接数据库按钮,来创建相应的响应函数8. 具体代码定义在MyProgramDlg.h中上面就是几个BUTTON的响应函数和EDIT CONTROL的VALUE的值。具体函数稍后会有详细。9. 当控件都设置完成后,如图10. 接下来具体讲下如何实现数据库的连接首先,点击MyProgram.CPP 找到BOOL CMyProgramApp:InitInstance()函数AfxOleInit();
3、来初始化COM库 ,因为数据库连接是通过COM接口实现的同时在stdafx.h文件下,加如下代码#import "C:Program FilesCommon FilesSystemADOmsado15.dll" no_namespace rename("EOF", "EndOfFile")#include <icrsint.h>具体含义,我也不是很清楚,忘了。不过,这个是必须的。另外,你看下import的路径下是否有该文件,如果没有的话,工程里面有,你添加到相应路径即可。11. 然后,就点到MyprogramDLG.H文件
4、先定义一个_ConnectionPtr m_pConnection; 12. 然后,找到连接数据Button的响应函数void CMyProgramDlg:OnBnClickedConnet()加入如下代码:/连接数据库/HRESULT hr;tryhr = m_pConnection.CreateInstance("ADODB.Connection");/创建Connection对象if(SUCCEEDED(hr)hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
5、FaceData.mdb","","",adModeUnknown);/连接数据库catch(_com_error e)/捕捉异常CString errormessage;errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage();AfxMessageBox(errormessage);/显示错误信息return FALSE;备注:这两处要加CString(CString 类似与string类型,不过有一定区别,是MFC里的)类型的地方,前面都要加_T(“”); 进行类型
6、转换,这个对有些编译器,如果没有系统会报错。成功连接数据库之后,如图所示:当你成功做到这一步时,表示你已经成功登录数据库,接下来就是对数据库进行查找和插入操作。13. 首先,点击MYPROGRAM.H 加入下列代码:_RecordsetPtr m_pRecordset;/数据集连接_variant_t vUsername,vID,vFeature;/存放取出来的数据的变量14. 查找操作,点击资源试图中点击查找按钮,找对应的响应函数加入如下代码:CString CFeature;tryCString strSQL;/strSQL.Format("SELECT * FROM FaceT
7、able where userid ='%s'",m_userID); / 有条件查找strSQL.Format(_T("SELECT * FROM FaceTable");m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset->Open(_variant_t(strSQL), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdUnknown);int i = 0;while(m_pRe
8、cordset->EndOfFile = VARIANT_FALSE && i < 1 )/vFeature = m_pRecordset->GetCollect("feature");vFeature = m_pRecordset->GetCollect("feature");CFeature = vFeature;MessageBox(CFeature);m_pRecordset->MoveNext();i+;/选择读取前1个 测试用所以读的少点catch(_com_error e)CString mes
9、sage;message.Format(_T("读取数据库失败!n 错误信息为:%s"),e.Description();AfxMessageBox( message );/显示错误信息具体显示页面:备注:strSQL.Format(_T("SELECT * FROM FaceTable"); 用来定义连接数据库的哪个表和显示的数据属性m_pRecordset.CreateInstance 创建数据集m_pRecordset->Open打开数据集_variant_t(strSQL) 具体数据库语言 ,要传入数据库m_pConnection.GetI
10、nterfacePtr() connection 指针 相当于数据库登录的帐号其他几个参数是读取数据库的方式,比如只读或者可读可写,具体我也记不是很清楚,你自己百度下吧成功后,显示图片如下(这个是我数据库里的数据):15. 到此,就实现了数据库简单查询的功能。16. 接下来是数据库插入功能,点击MyPROGRAM.H文件 声明一个void SaveData();函数,具体实现具体数值的插入数据库17. 在找到插入数据库的响应函数,加入如下代码:trym_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset->Open(&quo
11、t;SELECT * FROM FaceTable", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdUnknown);m_pRecordset->AddNew();/声明要插入数据SaveData();catch(_com_error e)AfxMessageBox(e.Description();AfxMessageBox(e.ErrorMessage();return ;备注:前面两句跟查询一样,都是要先创建数据集连接,m_pRecordset->AddNew();用来告
12、诉数据库我要开始插入数据,具体在SAVEDATA里面实现数据的插入18. SAVEDATA函数的实现if(!m_pRecordset->EndOfFile)m_pRecordset->PutCollect("userid",_T("0");m_pRecordset->PutCollect("username",_T("胡绍利");m_pRecordset->PutCollect("feature",_T("234234");m_pRecordset-&
13、gt;Update();/ 更新声明,插入数据GetDlgItem(IDC_EDIT1)->SetWindowTextW(_T("插入成功");PutCollect代表插入的一个数据属性 第一个参数表示在数据库里面的属性名字,第二个参数表示你要插入的数值。Update()表示我已经把数据输入完毕,数据库可以接收数据,来更新ACCESS数据库了。GetDlgItem(IDC_EDIT1)->SetWindowTextW(_T("插入成功"); 这个是通过获取对话框控件ID,这里是EDI CONTROL的ID,然后进行赋值给他,显示插入成功。成功后,显示图片如下:19. 同时,还可以动态加入数据在SAVEDATA函数里加入如下代码:CString s;_variant_t ss;GetDlgItem(IDC_EDIT1)->GetWindowTextW(s);/ 获取 Edit CONTROl的值 ,并将其赋值给Sm_pRecordset->PutCollect("userid",_T("0");ss= s;/类型转换m_pRecordset->PutCollect("username",ss);m_pRecordse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司深秋拓展活动方案
- 公司放松娱乐活动方案
- 公司游玩活动策划方案
- 公司节日纪念活动方案
- 公司早会流程策划方案
- 公司直播间灯光策划方案
- 公司组织踢毽子策划方案
- 公司组织慰问活动方案
- 公司花园团建活动方案
- 2025年小学教师资格考试试卷及答案
- 湖北省部分学校2023-2024学年高二下学期期末考试地理试题
- 基于大数据的公路运输碳排放评估与控制
- 叙事护理学智慧树知到期末考试答案章节答案2024年中国人民解放军海军军医大学
- 工业机器人系统操作员国家职业技能考核标准(2023年版)
- 上海学前教育学院附属青浦第二实验幼儿园新生入园登记
- 卡前列素氨丁三醇在产后出血的的应用课件
- 固废危废培训课件
- 水库安保服务方案
- 一例ANCA相关性血管炎患者的护理查房
- 《外科微创技术》课件
- 如何建立与客户良好的关系
评论
0/150
提交评论