




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级月嫂考试题及答案
- 医院物流系统专项工程招标文件
- 2025年管桩质检考试题及答案
- 扑火安全培训课件
- 慢阻肺药品课件
- 2025年原料配料工考试题及答案
- 广元中核职业技术学院《高等数学(3)》2025 - 2026学年第一学期期末试卷(A卷)
- 情景剧开幕式课件
- 医学考试试卷真题及答案
- 护士执业考试题目及答案
- 事故油池基坑开挖专项施工方案
- 沁园春 长沙综合练习(含答案)统编版必修上册
- 第一次世界大战ppt
- 奥迪TT汽车说明书
- 消防喷淋系统安装检验批质量验收记录
- 融资租赁测算表-2016-2
- 倾听与问题讲义
- 糖尿病合并足底烫伤护理查房
- 通信工程用电登高等高风险作业施工安全操作
- 邮政储汇业务员高级技师理论知识试卷
- 激光拉曼光谱
评论
0/150
提交评论