VC_工作备忘录管理系统

上传人:沈*** 文档编号:85736419 上传时间:2022-05-06 格式:DOC 页数:40 大小:1.20MB
收藏 版权申诉 举报 下载
VC_工作备忘录管理系统_第1页
第1页 / 共40页
VC_工作备忘录管理系统_第2页
第2页 / 共40页
VC_工作备忘录管理系统_第3页
第3页 / 共40页
资源描述:

《VC_工作备忘录管理系统》由会员分享,可在线阅读,更多相关《VC_工作备忘录管理系统(40页珍藏版)》请在装配图网上搜索。

1、 面向对象VC+课程论文题 目:工作备忘录管理系统 _学 院:通信与信息工程学院学 号:电 话:授课教师:摘要:近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统工作备忘录管理系统。工作备忘录管理系统是典型的信息管理系统,它的设计开发制作包含数据库支撑系统的建立和维护以及用户界面的开发两个部分。对于前者要求建立起数据一致性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。本论文主要阐述以面向对象的程序开发语言VC+为开发工具,结合Access数据库,设计

2、一个简单实用的工作备忘录管理系统。关键词:信息管理系统 VC+ 数据库Abstract: in recent years, computer technology matures, databasetechnology development, management information system applications already extended to society in all areasbined with the management information system development methods and steps to as the theoretic

3、al basis, and developed a small information management system-a memorandum management system. Memos management system is the typical information management system, the design and development of making it includes database support system set up and maintenance of the user interface and the developmen

4、t of the two parts. The former required to set up consistency of the data is strong, the data security good database. For the latter requires the application program function complete, easy to use, etc. This paper mainly expounds the development of procedures on object-oriented language VC+ as a dev

5、elopment tool, combined with the Access database, design a simple and practical work memo management system.Keywords:information management system VC+ database37 / 401 引言1.1 课题研究背景及意义现代科学的发展,使计算机进入了几乎一切领域。从科学研究到工农业生产,从企业生产管理到家庭生活,各行各业都广泛地使用着计算机。当今社会的数据信息管理离不开计算机技术的支持。如何实现对数据信息快捷、有效、实用的管理,是软件开发业追求的目标

6、。 随着当今社会的快速发展,人们的压力也日渐增大,当人们在工作或学习繁忙时,经常会忘记这样那样的事情,并不是说明这个人懒散,而是因为人的思维习惯就是这样,是属于模糊记忆的思维。什么是模糊记忆?模糊记忆是指记忆任何东西,只能记住概要框架或者一小部分重点或突出的容,而没有办法进行全部记忆,例如,你看过一部小说,记下来没有?可以说没有记下,也就是不能完整地背下整篇小说,但可以将整篇小说的概要讲出来,甚至可以讲一些很经典的情节描述,但绝对不可能一字不漏,包括标点符号都记下来。能否有一字不漏,包括标点符号都记下来的方法呢?当然有,但不是使用人脑,而是使用计算机,计算机就能达到准确记忆的效果。工作备忘录管

7、理系统也就是将计算机准确记忆的信息进行一个整理并管理的软件工具。2 系统开发环境和工具2.1 硬件环境Inter Core2 Duo CPU T8100 主频:2.10GHz存:2.00GB硬盘:160G2.2 软件环境操作系统:Microsoft Windows XP Professional数据库:Microsoft Office Access开发语言:C+开发工具:Microsoft Visual C+其他辅助软件:Microsoft Word等2.3开发工具与技术简介1Microsoft Visual C+简介Microsoft Visual C+是Microsoft公司推出的开发Wi

8、n32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。 它以拥有语法高亮,IntelliSense自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。VC+是微软公司开发的一

9、个IDE,换句话说,就是使用c+的一个开发平台.有些软件就是这个编出来的,另外还有VB、VF,只是使用不同语言。VC+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调callback函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误

10、的认识造成的,严格的来说VC+不是门语言,虽然它和C+之间有密切的关系,如果形象点比喻的话,可以把C+看作为一种工业标准,而VC+则是某种操作系统平台下的厂商标准,而厂商标准是在遵循工业标准的前提下扩展而来的。VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势。2Microsoft Office Access简介Access 是微软公司推出的基于Windows的桌面关系数据库管理系统RDBMS,即Relational Database M

11、anagement System,是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 Access能够存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 兼容数据库的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的进阶用户则能使用它来开发简单的应用软件。虽然它支援部分面

12、向对象OOP技术,但是未能成为一种完整的面向对象开发工具。Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序这些应用程序都利用ASP技术在Internet Information Services运行比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。因此许多人以为这样的

13、开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。 一些专业的应用程序开发人员使用 Access 用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透过网络存取数据的话,Access 的可扩放性并不高。因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。无论如何,不少 Access 的功能表

14、单,报告,序列和VB代码可以用作其他数据库的后期应用,包括 JET档案为主的数据库引擎,Access 缺省使用、Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。3C+ 简介美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普Bjarne Stroustrup博士在20世纪80年代初期发明并实现了C+最初这种语言被称作C with Classes。一开始C+是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数virtual function、运算符

15、重载operator overloading、多重继承multiple inheritance、模板template、异常exception、RTTI、命名空间name space逐渐被加入标准。1998年国际标准组织ISO颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通常称作ANSI/ISOC+。 1998年是C+标准委员会成立的第一年,以后每5年视实际需要更新一次标准。C+0x最终国际投票已于20XX8月10日结束,所有国家都投出了赞成票,C+0x已经毫无疑义地成为正式国际标准。先前被临时命名为C+0x的新标准将被称为C+ 2011。C+

16、 2011将取代现行的C+标准ISO/IEC 14882,它公开于1998年并于20XX更新,通称C+98以及C+03。国际标准化组织于20XX9月1日出版发布ISO/IEC 14882:2011,名称是:Information technology - Programming languages - C+ Edition: 3。C+是一种绝对不会试图迎合某个模子的语言。特别是它的形式可以变化多端,以解决不同类型的问题。这主要反映在象Microsoft Visual C+和Borland C+Builder那样的工具身上。它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应

17、用用于Microsoft Windows操作系统。3 系统分析系统设计和分析是系统开发最为关键的一环,系统设计好了,后面的代码设计就不会偏离方向。通过系统的设计,开发人员能够更好的把握系统的需求,了解各系统的功能模块。3.1 系统的设计思想根据模块化的设计思想,系统可以划分为若干个独立的模块,主要包括添加备忘事情,修改备忘事情,读取备忘事情,删除备忘事情,然后利用C+编程语言对各模块进行编程实现。系统结构如图3-1所示:添加备忘事情修改备忘事情读取备忘事情删除备忘事情User 图 3-1我的主要任务是完成这4个模块的设计与实现。3.2 系统需求分析在现代信息社会里,人们越来越重视信息的交流和沟

18、通,更加注重时间的有效利用,其中个人信息量也在高速增长,因此个人信息的管理在日常工作和生活中成为一项必不可少的容,方便实用的工作备忘录管理系统对于提高信息利用效率具有重要意义。随着个人电脑的普及,简单实用的工作备忘录管理系统成为人们日常个人信息管理的不错选择。使用者可以通过工作备忘录管理系统对日常工作和生活琐事等方面进行更有效的管理,主要是为使用者提供对工作信息更方便的记录和查询功能,为使用者在工作信息管理上带来更多的便利。3.3 系统功能描述备忘录的主要功能还是在于可以登记事情,并且可以随时查看未来或过去登记的事情,当然,如果更强大些,如安装在手机里面的软件,可以设置闹钟功能,那当然最好,在

19、本次的系统开发中,开发PC机的备忘录,将开发以下功能:新增备忘事情:选择日期,输入备忘的事情和一些备注信息,以便将来查阅。当人们在工作繁忙的时候,就会有许多的事情要去做,许多的事情要去安排,这时候,可以用备忘录的新增备忘事情功能,选择事情要办的日期,并输入要备忘的事情,当然可以添加一些备注信息,比如某天某时要去开一个会议,就可以在备注的信息里面添加会议的主题以及参加会议的领导。新增备忘的时候还可以选择事情的重要程度,当两件事在同一时间发生冲突时,可以根据事情的重要程度做出选择。删除备忘录事情:有些事情已经完成或不再需要记录,可以通过备忘录软件进行删除。有些事情已经提前完成了,或者说已经备忘的事

20、情不需要去做了,这时候可以用到备忘录删除的功能,当这件备忘的事情删除时,在数据库的表格中就不会有这件事的任何数据了。修改备忘录:修改备忘录的方式有两种,一种是直接修改该元组,不改变该元组的ID号,另外一种是直接删除需要修改的备忘录元组,再新建一个备忘录元组,由于新增的ID号是递增的,因此ID号必然会改变。当我们想改变已经备忘的事情时,就可以用到备忘录的修改功能,我们既可以修改事情的时间,也可以修改事情的备注,以达到我们预期的结果。读取备忘事情:根据用户选择的日期读取备忘的事情。当我们想知道明天或者后天有什么安排时,我们就可以根据日期来查询已经备忘的事情,从而可以合理的安排时间。4 系统设计与实

21、现4.1 功能模块设计从上面的功能描述中,可以把工作备忘录系统分为四个模块:新增备忘录事情、读取备忘录事情、删除备忘录事情和修改备忘录事情。工作备忘录管理系统的功能模块图如图4-1所示:备忘录管理系统新增备忘事情读取备忘事情删除备忘事情修改备忘事情图 4-1我的主要任务是对各模块进行设计和实现,新增备忘录的事情:可以传递SQL语句进行Insert操作。读取备忘事情:要实现该项技术,使用GetCollect函数即可。删除备忘录的事情:可以传递SQL语句进行Delete操作。修改备忘录的事情:可以重复删除和新增备忘录的事情,也可以传递SQL语句进行Update操作。4.2 数据库的设计数据库设计是

22、系统开发中非常重要的一个环节。数据库结构设计的好坏将直接影响到系统的效率和功能的实现。在设计数据库之前,要了解数据库的需求,从而确定数据库的结构。否则如果在代码实现过程中再修改数据库的结构,将会带来巨大人力和物力的浪费。4.2.1 数据库的需求分析一般而言,基于数据库的应用系统可以分为两个层次。应用程序层:功能性的应用程序,用于控制数据库访问等。数据库层:用于存储数据和管理数据。数据库层是不与用户直接打交道的,用户通过应用程序来访问数据库,因此,数据库可以看作是整个数据库应用系统的后台,而应用程序所展示的界面可以看作是该系统的前台。因此,设计好后台,直接关系到整个系统的稳定性和应用程序设计的方

23、便与否。概念模型就是对信息世界的抽象建模,狭义的信息世界可以专指数据库中的数据,那么概念模型就可以理解为对数据库数据的抽象建模。概念模型最常用的描述方法是E-R图实体联系图描述法3。本系统的E-R图如图4-2所示:MemoryNoteID重要程度备注事情日期 图 4-24.2.2 数据库表的设计通过数据库的需求,可以创建以下数据表:字段名称数据类型说明ID自动编号日期日期/时间备忘录的日期重要程度文本一般,重要,特别重要事情文本描述备忘的事情备注备注描述备忘事情的细节 表 4-1通过表4-1可以看出,数据库表设置了4个属性:日期:记录备忘录中进行备忘的事项的日期。重要程度:用于标记该事情的紧急

24、重要性。事情:用于存储具体的事情。备注:用于存储备忘事件需要注意的事项。4.2.3 数据库表的创建数据库作为数据库应用程序的后台数据基础,是必不可少的系统组成部分,数据库创建过程如下5。1使用Microsoft Office Access新建一个数据库MemoryNote,并放在F盘的根目录下,如图4-3所示: 图 4-32使用设计器创建表,根据数据库的需求,添加数据表的属性列,并在保存时创建自动递增的主键ID,如图4-4所示: 图4-44.3 系统各模块的设计 完成了系统的需求分析和功能模块的划分,以及数据库表的设计,接下来就是各模块的详细设计了,当然在设计各模块之前要先创建应用程序。4.3

25、.1 创建应用程序 运行Visual C+,选择File下的New命令,弹出New对话框,从Projects列表中选择MFC AppWizard向导,在Location文本框中选择项目工程的目录F:MEMORANDUM,在Project name文本框中输入工程文件的名称Memorandum,如图4-5所示: 图 4-5单击OK按钮,进入MFC AppWizard-step 1页面,从应用程序的类型中选择Single document,语言列表默认为中文,单击Finish按钮,选择OK。Memoradum的应用程序就创建完毕了。4.3.2 创建主对话框界面应用程序创建完成之后,需要对主对话框的

26、界面进行设计,根据前面的系统分析可以看出,由于系统分为了四个模块:添加备忘事情,修改备忘事情,读取备忘事情,删除备忘事情,所以要针对这四个模块设计四个对应的按钮,所以主界面的布局设计如图4-6所示:图4-6运行结果如图4-7所示,因为还没有对按钮添加消息的定义,所以按钮是显示灰色的。 图 4-74.3.3 新增备忘事项新增备忘事项是通过一个菜单功能来实现的,然后通过这个菜单来调用一个对话框,通过对话框中的控件来输入备忘事项和其他信息,具体步骤如下所示:1在资源编辑器中新建一个对话框资源。2设计新的对话框,使之符合插入备忘录的需求,如图所示。 图 4-83新增对话框类。为了使对话框中的数据能够顺

27、利的在控件和程序中处理,必须为之添加一个C+类。首先在当前的设计界面中,选择Insert中的New Class选项。然后,填写类名并选择基类为CDialog,如图所示。 图 4-94为每个控件添加控件的变量。使用ClassWizard为每个控件添加控件的变量,如图4-10所示。 图 4-105添加提交按钮的消息处理函数。在对话框资源编辑器中,双击提交按钮控件,添加该按钮的消息处理函数。void CInsertContent:OnInsert UpdateData; /临时变量用于构造SQL语句CString temp = ;tryADOCG:_RecordsetPtr m_pRecordset

28、; /数据集对象m_pRecordset.CreateInstance_uuidof;m_pRecordset-OpenSELECT * FROM menoryNote,_variant_tm_pConnection,true,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText;_variant_t GoalDpt;_variant_t vRecords; /用于执行函数的参数传递CString strTime ; /日期的字符串变量strTime.Format%d-%d-%d,m_InsertDate.GetYear,m_Ins

29、ertDate.GetMonth,m_InsertDate.GetDay;CString sql = insert into menoryNote values ;ifMessageBox;return ;sql += temp + strTime + temp + ,;sql += temp + m_strList + temp + ,;sql += temp + m_strMatter + temp + , ;sql += temp + m_strContent + temp + ;MessageBox; /测试是否是正确的SQL语句m_pConnection-Executesql.All

30、ocSysString,&vRecords,ADOCG:adCmdText;m_pRecordset-Update; /更新数据集ifState /查看数据连接对象的状态m_pConnection-Close; /关闭数据连接对象m_pConnection= NULL; /指针赋值为NULLcatchAfxMessageBox;CDialog:OnOK;上述代码,将连接数据库的SQL语句编好,并交给连接对象进行执行,也可以定义命令对象,由命令对象进行执行,它们的效果是一样的,只是连接对象进行执行后,要更新数据集,命令对象执行后,可以不更新数据集,因为命令对象直接对数据库进行操作,而连接对象是对

31、数据集进行操作,操作完后需要更新并且写回到数据库中5。6添加新增备忘事项菜单消息处理函数。使用ClassWizard新增新增备忘事项菜单的命令消息处理函数,代码如下:void CMemorandumView:OnMenuitemInsert CInsertContent DlgInsert ;if!DlgInsert.DoModalreturn;本模块的运行结果如图4-11所示: 图 4-11当点击提交按钮后,数据库的数据更新,结果如下图所示: 图 4-12从数据库的表中可以看出,ID为34的数据信息已经添加成功。4.3.4 读取备忘事情备忘事情的显示将显示在视图区域中,具体步骤如下:1新增一

32、个对话框资源,并将ID设置为IDD_DIALOG_MEMO。然后设计对话框的界面如图4-13所示:图 4-132为新建的对话框新增一个与之关联的类,并命名为CDlgMemo,并且设置该类的父类为CDialog类。为日期控件添加相应的变量。将日期的下拉控件添加一个变量m_selectDate,该变量是标记当前选定的日期,如图4-14所示:图 4-145编写处理代码。首先,添加记录查询所用的选定日期的值。该值是为了方便在控件和视图类中使用,因此,使用一个全局变量最合适。为项目添加一个Globals.cpp源文件,并添加以下代码:#include stdafx.h/获得MFC的支持#include

33、globals.h/可以定义一些全局结构体等CTime globalDate ; /全局的日期变量然后,编写OK按钮的消息处理函数,将当前选择的日期,也就是m_selectDate赋值给全局变量globalDate,globalDate在Globals.cpp源文件中已经定义。消息处理函数的代码如下:void CDlgMemo:OnOK UpdateData;globalDate = m_selectDate ;/当前选择的日期赋值给全局变量,以便其他地 /方使用CDialog:OnOK;查看备忘记录的菜单命令消息处理函数代码如下:void CMemorandumView:OnMemoShow

34、 CDlgMemo Dlg ; /备忘查询日期选择的对话框类对象 if!Dlg.DoModal /生成对话框return ;flag = 1 ; /备忘录显示状态设置为1读取备忘事情时,需要将备忘的事情展示出来,编写备忘录展示的代码如下所示:void CMemorandumView:ShowMomo/获取当前的设备环境对象指针CDC * pDC = this-GetDC;/临时字符串变量,用于构造SQL语句CString temp ;CString strDate ;/逐步打印年月日temp.Format%d年,globalDate.GetYear;pDC-TextOut;temp.Forma

35、t%d月,globalDate.GetMonth;pDC-TextOut;temp.Format%d日,globalDate.GetDay;pDC-TextOut; /自定义的打开数据函数openDatabase;_variant_t vRecords;tryADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance_uuidof;CString sql = SELECT * FROM menoryNote where 日期=#;CString temp;temp.Format%d-%d-%d#,globalDate.GetYear

36、,globalDate.GetMonth,globalDate.GetDay;sql += temp; /选择特定的数据集m_pRecordset-Opensql.AllocSysString,_variant_tm_pConnection,true,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText; /整型变量i用于打印距离间隔变量int i = 0 ;/用于打印备忘录事情的详细信息whileEndOfFilepDC-TextOut;vRecords = m_pRecordset-GetCollect;pDC-TextOut1

37、50,100 + i,CString;i+=100;pDC-TextOut;vRecords = m_pRecordset-GetCollect;pDC-TextOut150,100 + i,CString;i+=100;pDC-TextOut;vRecords = m_pRecordset-GetCollect;pDC-TextOut150,100 + i,CString;i+=100;/移动到下一条记录m_pRecordset-MoveNext;ifState/关闭数据对象m_pConnection-Close;m_pConnection= NULL;catchMessageBox;Upd

38、ateData;而在视图类OnDraw中调用ShowMomo显示查询的结果,当用户单击了查看备忘记录菜单项时,flag的值会置1,当flag的值为1时会调用展示备忘事项的函数。代码如下:void CMemorandumView:OnDrawCMemorandumDoc* pDoc = GetDocument;ASSERT_VALID;ifShowMomo;本模块的运行结果如图4-15所示: 图 4-154.3.5 删除备忘事项 信息管理系统中的数据删除是常见的功能,但涉及到如何实现删除,界面实现有很多方式,主要有:a. 通过展示的信息,然后选取展示的信息,单击相关的删除按钮。b. 通过输入相关

39、的条件,如删除从20XX08月10日至20XX12月10日的全部数据。c. 通过输入主键进行删除,如输入特定的ID号。这些都是界面设计问题,本系统从功能实现方面上手,选择具体的ID号进行删除,掌握删除的方法后,则可以实现其他更复杂的删除操作,具体的开发步骤如下:1为删除备忘记录菜单添加命令消息处理函数OnDelete。2新建一个对话框资源,设计界面如图所示: 图 4-163新建一个对话框的类。设置新类的名字为CDeleteItem,设置其基类为CDialog,为Dialog的IDIDD_DIALOG_DEL添加变量。调用ClassWizard为ID编辑框添加变量为m_IDnum,如图所示: 图

40、 4-174编写删除备忘记录菜单添加命令信息处理函数OnDelete,代码如下所示:void CMemorandumView:OnDelete CDeleteItem dlg;/创建删除对话框的对象if!dlg.DoModal /生成对话框return;5在删除记录对话框双击OK按钮,并添加如下所示的代码,该代码实现了根据用户输入的ID号来删除该ID号代表的元组的信息。void CDeleteItem:OnOK UpdateData; /准备读入ID编辑框控件的值CoInitialize;ADOCG:_ConnectionPtr m_pConnection; /定义连接的对象m_pConnec

41、tion.CreateInstance_uuidof;CString pathName; /表示连接字符串pathName += MenoryData.mdb;try /连接数据库 m_pConnection-OpenpathName.AllocSysString,ADOCG:adModeUnknown; catchAfxMessageBox;_variant_t vRecords;tryADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance_uuidof;m_pRecordset-OpenSELECT * FROMmenory

42、Note,_variant_tm_pConnection,true,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText; /打开数据集CString sql = delete from menoryNote where ID=;CString temp; /临时字符串,用于构造SQL语句temp.Format; /读入ID控件的值,格式为十进制sql += temp; /SQL语句补充MessageBox; /执行SQL的删除语句m_pConnection-Executesql.AllocSysString,&vRecords,A

43、DOCG:adCmdText;m_pRecordset-Update;ifStatem_pConnection-Close; /关闭连接对象m_pConnection= NULL;catchAfxMessageBox; /抛出异常CDialog:OnOK;6模块测试。当打开删除功能时,如图输入ID为34,然后单击OK按钮,如果系统没有提示删除异常!不存在该ID!信息,则表示删除成功。可以打开数据库的表查看,如图4-19,可以看到ID为34的去信科开会数据信息已经被成功的删除了。 图 4-18 图 4-194.3.6 修改备忘数据备忘数据的修改有多种表现形式,为了简便起见,在本系统的开发中,使用

44、了ID的修改数据的表现形式,具体的步骤如下:1新建一个对话框,用于接收用户输入的ID,这个ID就是用户修改元组的依据,使用该ID来寻找用户需要修改的记录。界面设计如图4-20所示,该界面有点类似于删除记录和插入记录的组合的对话框界面,但它们绝对不能是同一个对话框。图 4-202为该对话框新增一个对话框类。选择Insert下的New Class命令为该对话框新增一个对话框类,为对话框中的ID编辑框添加变量。添加的变量为m_updateID,类型为int,使用围是099999。为对话框中的各个编辑控件添加变量,如表4-2所示:控件意义变量名变量类型备忘时间m_changeTimeCTime备忘事件

45、m_matterCString备忘备注m_contentCString备忘紧急程度m_strListCString 表 4-23双击对话框查询按钮控件,添加查询按钮控件的消息处理函数。代码如下所示,该代码实现了通过用户输入的ID号来查询出该元组的信息,并将这些信息填写到对话框界面的相对位置,以便用户进一步修改4。void CUpdateID:OnCheck UpdateData; /准备读取ID查询CoInitialize;ADOCG:_ConnectionPtr m_pConnection; m_pConnection.CreateInstance_uuidof;CString pathNa

46、me;pathName += MenoryData.mdb;try /打开数据库 m_pConnection-OpenpathName.AllocSysString,ADOCG:adModeUnknown; catchAfxMessageBox;_variant_t vRecords; /用于执行语句参数传递CString sql = SELECT * FROM menoryNote where ID=;CString temp; /临时字符串对象,用于构造SQL语句temp.Format;/读入IDsql +=temp;tryADOCG:_RecordsetPtr m_pRecordset;

47、m_pRecordset.CreateInstance_uuidof;m_pRecordset-Opensql.AllocSysString,_variant_tm_pConnection,true,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText;whileEndOfFile /当前需要修改的数据写回到控件变量vRecords = m_pRecordset-GetCollect;m_matter = vRecords.bstrVal;vRecords = m_pRecordset-GetCollect;m_content =

48、vRecords.bstrVal;vRecords = m_pRecordset-GetCollect;m_strList = vRecords.bstrVal;m_pRecordset-MoveNext; /将数据集移动到下一条变量ifStatem_pConnection-Close; /关闭数据对象m_pConnection= NULL;catchAfxMessageBox;UpdateData; /将变量的值写回到控件中,并重画该按钮的功能有两个:a.确定用户需要修改哪个元组记录。b.返回该元组记录,以保证用户修改数据的工作量最小。现在可以测试一下该功能,先查看如图4-21所示的数据库,

49、我们可以看到已经有了一条ID号为30的记录。调用修改备忘事件菜单,在弹出的对话框中输入ID为30,再单击查询按钮,可以得到如图4-22所示的效果。图 4-21 图 4-224提交修改后的记录,这步非常简单,与插入数据类似,只要改变一个SQL语句即可。在对话框资源中,双击提交按钮控件,添加提交按钮的消息处理函数,代码如下所示,该段代码实现了对特定ID号元组的修改并提交。void CUpdateID:OnUpdate CoInitialize; /定义对象ADOCG:_ConnectionPtr m_pConnection; m_pConnection.CreateInstance_uuidof;

50、CString pathName;pathName += MenoryData.mdb;try /打开本地数据库m_pConnection-OpenpathName.AllocSysString,ADOCG:adModeUnknown; catchAfxMessageBox;UpdateData; /将控件变量值写回到控件中CString temp; /临时字符串对象,用于SQL语句构造temp.Format;tryADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance_uuidof;m_pRecordset-OpenSELEC

51、T * FROM menoryNote,_variant_tm_pConnection,true,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText;_variant_t GoalDpt;_variant_t vRecords; /用于执行函数参数传递CString strTime ; /用于表示更新时间strTime.Format%d-%d-%d,m_changeTime.GetYear,m_changeTime.GetMonth,m_changeTime.GetDay;CString sql = update menoryNo

52、te ;ifMessageBox;return ;sql += set 日期=;sql += strTime;sql +=,重要程度=;sql += m_strList;sql+=,事情=;sql += m_matter;sql += ,备注=;sql += m_content;sql += where ID=;sql +=temp;MessageBox;m_pConnection-Executesql.AllocSysString,&vRecords,ADOCG:adCmdText;/写回到硬盘数据库之前,需要对存数据集对象进行更新m_pRecordset-Update;ifStatem_pConnection-Close;m_pConnection= NULL;catchAfxMessageBox;CDial

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!