已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MFC使用ADO对象开发数据库应用程序需要一个List Constrol控件设置为其步骤一般分为:(1) 引入ADO动态库文件(2) 初始化COM环境(3) 连接数据库操作数据表说明:本数据库使用acess2000制作,名字为“shujuku.mdb”。内含一个表,命名为“表1”。在stdafx.h添加以下代码引入ADO动态库文件#import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF)rename(BOF,adoBOF)初始化COM环境:CoInitialize(NULL); /在app类中的InitInstance函数中添加:CoUninitialize(); /在app类中的InitInstance函数的最后(return之前)添加,释放COM环境首先先在dlg头文件中先声明这两个智能指针,通过这些指针可以很容易的创建和删除ADO对象。_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;接下来在dlg类中添加函数void OnInitADOConn()void CMy1Dlg:OnInitADOConn()try/创建连接对象实例m_pConnection.CreateInstance(ADODB.Connection);/设置连接字符串(2000的在代码中有!)CString strConnect=DRIVER=Microsoft Access Driver (*.mdb);uid=;pwd=;DBQ=shujuku.mdb;/使用Open方法连接数据库m_pConnection-Open(_bstr_t)strConnect,adModeUnknown); catch(_com_error e)AfxMessageBox(e.Description();在dlg类中在添加void ExitConnect()函数void CMy1Dlg:ExitConnect()/关闭记录集和连接if(m_pRecordset!=NULL)m_pRecordset-Close();m_pConnection-Close();在dlg类的OnInitDialog函数中添加如下代码,设置列表视图的风格和标题(写在最后)m_Grid.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);m_Grid.InsertColumn(0,编号,LVCFMT_LEFT,110,0);m_Grid.InsertColumn(1,姓名,LVCFMT_LEFT,110,1);m_Grid.InsertColumn(2,性别,LVCFMT_LEFT,110,2);m_Grid.InsertColumn(3,学历,LVCFMT_LEFT,110,3);AddToGrid();在dlg类中添加void AddToGrid()函数void CMy1Dlg:AddToGrid()/连接数据库OnInitADOConn();/设置查询字符串_bstr_t bstrSQL = select * from 表1 order by 编号 desc;/创建记录集指针对象实例m_pRecordset.CreateInstance(_uuidof(Recordset);/打开记录集m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);while(!m_pRecordset-adoEOF)m_Grid.InsertItem(0,);m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset-GetCollect(编号);m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset-GetCollect(姓名);m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset-GetCollect(性别);m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset-GetCollect(学历);/将记录集指针移动到下一条记录m_pRecordset-MoveNext();/断开数据库连接ExitConnect();接下来为四个edit控件和一个list constrol控件关联变量,在资源中右键点击选择classwizar里的Member variables,分别为它们设置变量为m_ID,m_Name,m_Sex,m_Culture,m_Grid.在dlg类的头文件部分自动会生成CStringm_ID;CStringm_Name;CStringm_Sex;CStringm_Culture;CListCtrl m_Grid;Dlg类构造函数中m_ID = _T();m_Name = _T();m_Sex = _T();m_Culture = _T();dlg类的DoDataExchange()函数中DDX_Text(pDX, IDC_EDIT1, m_ID);DDX_Text(pDX, IDC_EDIT2, m_Name);DDX_Text(pDX, IDC_EDIT3, m_Sex);DDX_Text(pDX, IDC_EDIT4, m_Culture);接下来双击那四个功能按钮和一个列表控件的点击响应功能,分别生成各自的响应函数/记录数据添加功能void CMy1Dlg:OnButton1() UpdateData(TRUE);if(m_ID.IsEmpty() | m_Name.IsEmpty() | m_Sex.IsEmpty() | m_Culture.IsEmpty()MessageBox(基础信息不能为空!);return;OnInitADOConn();_bstr_t sql;sql = select * from 表1;m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);trym_pRecordset-AddNew(); /添加新行m_pRecordset-PutCollect(编号,(_bstr_t)m_ID);m_pRecordset-PutCollect(姓名,(_bstr_t)m_Name);m_pRecordset-PutCollect(性别,(_bstr_t)m_Sex);m_pRecordset-PutCollect(学历,(_bstr_t)m_Culture);m_pRecordset-Update(); /更新数据表ExitConnect();catch(.)MessageBox(操作失败);return;MessageBox(添加成功);m_Grid.DeleteAllItems(); /删除列表控件AddToGrid();/在dlg类头文件声明一个long型变量,用来保存用户单击的记录在列表控件的位置为列表,该变量定义在dlg的类内。/控件的NM_CLICK消息添加消息处理函数(即双击资源框里的list constrol控件就会生成)void CMy1Dlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) long pos = m_Grid.GetSelectionMark();m_ID = m_Grid.GetItemText(pos,0);m_Name = m_Grid.GetItemText(pos,1);m_Sex = m_Grid.GetItemText(pos,2);m_Culture = m_Grid.GetItemText(pos,3);UpdateData(FALSE);*pResult = 0;/修改数据功能void CMy1Dlg:OnButton2() UpdateData(TRUE);if(m_ID.IsEmpty() | m_Name.IsEmpty() | m_Sex.IsEmpty() | m_Culture.IsEmpty()MessageBox(基础信息不能为空!);return;OnInitADOConn();_bstr_t sql;sql = select * from 表1;m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);long pos = m_Grid.GetSelectionMark();trym_pRecordset-Move(long)pos,vtMissing);m_pRecordset-PutCollect(编号,(_bstr_t)m_ID);m_pRecordset-PutCollect(姓名,(_bstr_t)m_Name);m_pRecordset-PutCollect(性别,(_bstr_t)m_Sex);m_pRecordset-PutCollect(学历,(_bstr_t)m_Culture);m_pRecordset-Update();ExitConnect();catch(.)MessageBox(操作失败);return;MessageBox(修改成功);m_Grid.DeleteAllItems();AddToGrid();/删除数据功能void CMy1Dlg:OnButton3() OnInitADOConn();_bstr_t sql;sql = select * from 表1;m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);long pos = m_Grid.GetSelectionMark();trym_pRecordset-Move(long)pos,vtMissing);m_pRecordset-Delete(adAffectCurrent);m_pRecordset-Update();Exit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Zearalenone-BSA-ZEN-BSA-生命科学试剂-MCE
- 2025年安徽公务员考试行测试题及参考答案
- 2025年宠物智能喂食器材质安全报告
- 2025年高分子物理考试题及答案
- 窗口服务培训笔试题目及答案
- 2025年急性喉炎知识试题及答案
- 2025年浙江东方职业技术学院(硕士研究生)人才招聘笔试题附答案
- 2026-2031年中国定制软件开发行业市场现状供需分析及投资评估规划分析研究报告
- 单招面试笔试题目及答案
- 2025年中医主治内科试题及答案
- 教师教学能力比赛-钳工工艺与技能-六方螺母的制作电子教案
- 会计账册报表(非营利组织适用)
- 全国巾帼家政服务职业技能大赛(养老护理员)决赛备赛试题库(含答案)
- (正式版)FZ∕T 14004-2024 再生纤维素纤维印染布
- 2024年山东省化学检验员技能竞赛参考试题库(附答案)
- translated-(2024.V1)NCCN临床实践指南:心理痛苦的处理(中文版)
- 妈妈咪呀 mamma mia二部合唱简谱
- 初中物理实验目录及相关器材大全
- 人工智能基础及应用(微课版) 课件 第2章 知识图谱与专家系统
- 歌曲《莫尼山》艺术风格与演唱实践探析
- 二年级语文上册我要的是葫芦1
评论
0/150
提交评论