




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本教程是实现c+MFC连接ACCESS数据库教程 胡绍利 前提介绍: 我用的是VS2012编写C+程序,ACCESS使用2003版本,测试数据库为FACEDATA.MDF 具体教程如下: 1. 首先,新建MFC工程 ,取名字MyProgram 2. 点击下一步,知道出现以下界面,加应用程序类型改为基于对话框 3. 再点击完成,即成功创建MFC工程 4. 之后会生成如下页面,为显示框页面。 你可以通过拖拽右边工具栏的控件来添加控件。 如果要查看显示框界面的话,可以点击资源试图来查看,一般都是在左下角位置。 5. 由于本教程是连接数据库,所以,就简单添加一个查找和插入的功能。 加入控件Button
2、 和 Edit control 6. 对于控件的操作,如创建连接数据库的Button,可以点击右键,选中属性来修改控件信息,一般要改的信息有ID,caption 其他属性需要的话,自己百度去。 7. 修改完成后,再通过双击界面上的连接数据库按钮,来创建相应的响应函数 8. 具体代码定义在MyProgramDlg.h中 的值。EDIT CONTROL的VALUE上面就是几个BUTTON的响应函数和 。具体函数稍后会有详细。 当控件都设置完成后,如图9. 10. 接下来具体讲下如何实现数据库的连接找到首先,点击MyProgram.CPP 函数CMyProgramApp:InitInstance()
3、BOOL COM接口实现的COM库 ,因为数据库连接是通过AfxOleInit();来初始化 同时在stdafx.h文件下,加如下代码 #import ?尺停潲牧浡?汩獥屜潃浭湯?汩獥屜祓瑳浥屜?屏浜慳潤?搮汬 no_namespace rename(?, ?摮晏楆敬) #include 具体含义,我也不是很清楚,忘了。不过,这个是必须的。 的路径下是否有该文件,如果没有的话,工程里面有,你添加到相应路径即import另外,你看下 可。 .H文件11. 然后,就点到MyprogramDLG 先定义一个 m_pConnection; _ConnectionPtr12. 然后,找到连接数据Butt
4、on的响应函数 :OnBnClickedConnet() CMyProgramDlgvoid 加入如下代码:/连接数据库/ HRESULT hr; try hr = m_pConnection.CreateInstance(ADODB.Connection);/创建Connection对象 if(SUCCEEDED(hr) hr = m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source= FaceData.mdb,adModeUnknown);/连接数据库 catch(_com_error e)/捕捉异常 CString
5、 errormessage; 牥潲浲獥慳敧?牯慭?连接数据库失败!rn错误信息:%s,e.ErrorMessage(); AfxMessageBox(errormessage);/显示错误信息 return FALSE; 备注: 这两处要加CString(CString 类似与string类型,不过有一定区别,是MFC里的)类型的地方,前面都要加_T(“”); 进行类型转换,这个对有些编译器,如果没有系统会报错。 成功连接数据库之后,如图所示: 当你成功做到这一步时,表示你已经成功登录数据库,接下来就是对数据库进行查找和 插入操作。 加入下列代码: 首先,点击MYPROGRAM.H 13. _
6、RecordsetPtr m_pRecordset;/数据集连接 /存放取出来的数据的变量_variant_t vUsername,vID,vFeature; 查找操作,点击资源试图中点击查找按钮,找对应的响应函数14. 加入如下代码:CString CFeature; try CString strSQL; userid /strSQL.Format(SELECT * FROM where FaceTable 有条件查找=%s,m_userID); / strSQL.Format(_T(SELECT * FROM FaceTable); m_pRecordset.CreateInstance
7、(_uuidof(Recordset); m_pRecordset-Open(_variant_t(strSQL), adLockOptimistic, adOpenDynamic, m_pConnection.GetInterfacePtr(), adCmdUnknown); int i = 0; ARIANT_FALSE & i EndOfFile = V 1 ) /vFeature = m_pRecordset-GetCollect(eature); vFeature = m_pRecordset-GetCollect(eature); CFeature = vFeature; Mess
8、ageBox(CFeature); m_pRecordset-MoveNext(); 测试用所以读的少点 1个 /i+; 选择读取前 catch(_com_error e) CString message; 息误失库败!n 错信据取 敭獳条?潆浲瑡弨?读数:%s),e.Description(); 为 显示错误信息AfxMessageBox( message );/ 具体显示页面: 备注:strSQL.Format(_T(卜?剆?捡呥扡敬); 用来定义连接数据库的哪个表和显示的数据属性 m_pRecordset.CreateInstance 创建数据集 m_pRecordset-Open打开数
9、据集 _variant_t(strSQL) 具体数据库语言 ,要传入数据库 m_pConnection.GetInterfacePtr() connection 指针 相当于数据库登录的帐号 其他几个参数是读取数据库的方式,比如只读或者可读可写,具体我也记不是很清楚,你自己百度下吧 成功后,显示图片如下(这个是我数据库里的数据): 15. 到此,就实现了数据库简单查询的功能。 接下来是数据库插入功能,点击MyPROGRAM.H16. 文件声明一个 函数,具体实现具体数值的插入数据库void SaveData(); 在找到插入数据库的响应函数,加入如下代码:17. try m_pRecordse
10、t.CreateInstance(_uuidof (Recordset); m_pRecordset-Open( 卜?剆?捡呥扡敬, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdUnknown); 声明要插入数据/m_pRecordset-AddNew(); SaveData(); e) (_com_error catch AfxMessageBox(e.Description(); AfxMessageBox(e.ErrorMessage(); ; return 备注:前面两句跟查询一样,都是要
11、先创建数据集连接,m_pRecordset-AddNew(); 用来告诉数据库我要开始插入数据,具体在SAVEDATA里面实现数据的插入 函数的实现VEDATASA 18. if(!m_pRecordset-EndOfFile) m_pRecordset-PutCollect(%userid,_T( ); 胡绍利 彭剰捥牯獤瑥?畐?汯敬瑣獵牥慮敭?呟尨 m_pRecordset-PutCollect(eature,_T(?234); m_pRecordset-Update(); / 更新声明,插入数据 );插入成功_T(IDC_EDIT1GetDlgItem()-SetWindowTextW(
12、 PutCollect代表插入的一个数据属性 第一个参数表示在数据库里面的属性名字,第二个参数表示你要插入的数值。 Update()表示我已经把数据输入完毕,数据库可以接收数据,来更新ACCESS数据库了。 GetDlgItem(IDC_EDIT1)-SetWindowTextW(_T(插入成功); 这个是通过获取对话框控件ID,这里 ,然后进行赋值给他,显示插入成功。的EDI CONTROLID是成功后,显示图片如下: 19. 同时,还可以动态加入数据 函数里加入如下代码:VEDATASA在 s; CString ss; _variant_t )-GetWindowTextW(s); GetDlgItem(IDC_EDIT1S 的值获取 Edit CONTROl,并将其赋值给/ ); (m_pRecordset-PutCollect(甥敳楲層,_Tss= s; /类型转换 ,ss); 甥敳湲浡履m_pRecordset-Put
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场形象与礼仪规范计划
- 教学评价体系计划
- 如何利用人工智能提升品牌体验计划
- 探索多元化仓库经营的可能性计划
- 2025-2030中国镜子除雾器行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国锂离子蓄电池行业市场前景分析及发展趋势与投资战略研究报告
- 2025-2030中国钢铁贸易市场运营格局与前景战略分析研究报告
- 2025-2030中国金融租赁行业发展分析及投资价值预测研究报告
- 2025-2030中国酒店洗涤用品行业市场发展现状及发展趋势与投资策略研究报告
- 2025-2030中国迷你USB电缆行业市场现状供需分析及投资评估规划分析研究报告
- 2025年辅警招聘考试试题库及答案(全优)
- 2025-2030全球及中国4,4-二氟二苯甲酮行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 【初中地理】西亚课件-2024-2025学年人教版(2024)七年级地理下册
- (一模)2025年广东省高三高考模拟测试 (一) 英语试卷(含官方答案及详解)
- 退役军人无人机培训宣传
- 退役军人保密教育
- 《园林微景观设计与制作》课件-项目二 作品展示
- 本科毕业论文完整范文(满足查重要求)城市社区网格化治理问题研究
- 2025年旅游专业面试试题及答案
- 液压升降平台施工方案
- 交通运输部南海航海保障中心推迟公开招聘笔试高频重点模拟试卷提升(共500题附带答案详解)
评论
0/150
提交评论