文档详情

家政管理系统毕业设计论文范文

ra****d
实名认证
店铺
DOC
1.71MB
约62页
文档ID:178023618
家政管理系统毕业设计论文范文_第1页
1/62

目 录内容摘要 IAbstract II1 导言 11.1 研究背景及意义 11.2 国内外研究概述 11.3 研究内容与方法 21.3.1 研究内容与方法 21.3.2 本论文的章节安排 21.4 创新点与进一步研究的方向 32 系统开发工具 42.1 Microsoft Visual Stido.NET 2005开发环境 42.2 Microsoft .NET Framework 2.0 52.3 Oracle 9i 数据库 63 系统规划与系统分析 73.1 系统运行环境 73.1.1 硬件环境 73.1.2 软件环境 73.2 系统的总体结构 83.3 系统的数据流程分析 103.4 系统数据库设计 103.4.1 数据表设计 103.4.2 触发器设置 123.4.3 视图设置 124 系统设计与实现 154.1 数据库连接过程 154.2 系统主界面 174.3 主程序界面 194.3.1 预约情况管理模块 204.3.2 效劳情况管理模块 244.3.3 客户管理模块 274.3.4 效劳工程价格表管理模块 324.4 查询模块 354.4.1 预约查询 35效劳情况查询 36客户资料查询 364.5 系统管理模块 374.6 帮助模块 384. 7 Web模块 39管理接口 394.7.2 Web登录 40用户修改密码 41用户资料修改 41添加新的预约 41查看预约信息 425 系统测试 446 关键技术与系统特点 456.1 关键技术 456.2 系统特点 457 结论 47参考文献 48附录 49附录A 开题报告 49附录B 系统数据库表 52附录C 系统文件清单 54附录D 用户手册 55附录E 外文资料与中文译文 56附录F 系统源代码清单 56致谢 57内容摘要内容摘要:为了使尚泽家政公司的效劳管理工作从繁重琐碎的日常事物中脱离出来,有效的降低管理本钱,对目前家政效劳管理信息化的现状和前景进行了调查研究,提出了家政信息管理系统的软件解决方案,并实现了“尚泽家政效劳管理系统〞。

该系统分为效劳工程管理、客户资料管理、预约情况管理、效劳情况管理、查询、系统管理及Web七大模块系统使用了Microsoft Visual Stido.NET 2005作为开发环境,C# 2.0作为开发语言,Microsoft.NET Framework 2.0作为开发框架,使用ADO.NET 2.0数据引擎访问数据库同时为了保证强大的数据吞吐量与事务处理的特性选用了Oracle 9i作为系统的数据库支持,并使用PL/SQL编写了许多视图、触发器、存储过程内置于数据库中以提高系统性能系统的开发过程中使用生命周期法进行系统的分析与设计,在详细设计中,采用了快速原型法以及模块化和面向对象的程序设计方法该系统涵盖了尚泽公司家政效劳的主要业务,设计新颖,功能齐全,界面友好,操作方便,实现了家政效劳的信息化管理关键词:家政效劳;信息管理;软件开发;Visual Studio.NET;C#;.NET Framework;ADO.NET;Oracle 9iAbstractAbstract: For ShangZe Housing Service Company from heavy service management, from petty daily work out, the lower the effective cost management, management information services to the current housing service situation and prospects of the application of the research presented Housing Service Information Management System software solution, and developed the ShangZe Housing Service Information Management System. The system consists of project management services, customer information management, appointment of management, services management, query, systems management and Web seven modules. Use Microsoft Visual Stido.NET 2005 as a development environment, use of C# 2.0 as a development language, use Microsoft .NET Framework 2.0 as development framework, use ADO.NET 2.0 data engine for database access to ensure that the new system has many powerful functions. At the same time in order to ensure strong data throughput and the handling characteristics chosen Oracle 9i database for system support, and use PL/SQL produced, views, triggers, stored in the database in order to enhance the process of embedded system performance. In systems development, Life-Cycle process used for analysis and design, in the detailed design, we use rapid Prototype modular development and Object-Oriented Programming approach. The system covers the main business services of ShangZe Housing Service Company, innovative design, functional, friendly interface, easy to operate and achieve a domestic service information management.Key Words: Housing Service Management鲁Information Management鲁Software Development鲁Visual Studio .NET鲁C#鲁.NET Framework鲁ADO.NET鲁Oracle 9i1 导言用信息化技术与信息化思维理念改变企业生产经营,建立基于网络的管理信息系统或者修订原有的管理信息系统, 逐步成为各企业迎接技术与时代变革的必然趋势。

而当前家政效劳公司对家政效劳的管理主要还是以使用纸、笔等工具进行手工管理为主这就造成了管理的相当不便,数据量较少时还比拟容易管理,一旦公司业务量增多数据量变大,手工管理的低效性也就成了制约公司继续开展的主要因素本课题的任务就是为此而开发“尚泽家政效劳管理系统〞软件1.1 研究背景及意义本课题的任务是以尚泽家政效劳公司的主要业务流程为背景开发一套家政管理软件,以实现尚泽公司客户管理、效劳工程管理、预约管理、效劳档案管理、系统管理、Web管理等信息管理工作及各项查询工作尚泽家政管理信息系统〞实现了分散网络环境下的家政效劳的计算机化、标准化和标准化,提高了家政效劳的效率和质量,增强了企业竞争力系统的投入运行可以加快尚泽公司内部信息的传递速度,能及时准确地向决策部门提供信息,给工作人员提供客户在家政效劳中的各种信息有效控制了家政效劳资源的浪费、提高了家政效劳的效率1.2 国内外研究概述目前国内外的家政管理软件并不多,普通的家政管理软件注重的是信息资料的录入与查阅,这是传统管理软件的设计思路而ERP却是新一代集成化管理信息系统,其核心思想是供给链管理,它注重对企业业务流程进行改善与企业核心竞争力的打造。

它是一种先进的、行之有效的管理思想和方法它的特点是: (1) 系统运行集成化(2) 业务流程合理化(3) 绩效监控动态化 (4) 管理改善持续化 所以当前家政管理软的开发应尽量符合ERP软件开发特征,采用C/S、B/S相结合的方式实现对整个企业供给链的管理,适应企业市场竞争的需要1.3 研究内容与方法本课题主要用来完成基于Oracle 9i与Microsoft .NET 2.0的家政管理信息系统的设计与实现在软件开发过程中使用了软件工程的快速原型法建立根本的软件模型,而后采用生命周期法分阶段进行软件的开发[4] 研究内容与方法本软件是为了使尚泽家政公司从繁重琐碎的日常事物中脱离出来,有效的降低管理本钱而开发的一套管理信息系统本系统拥有多个模块分别用来完成客户管理、效劳工程管理、预约管理及效劳后存档等功能本系统实现以下几项功能:效劳工程管理:用来添加、删除、修改家政效劳工程,该模块管理所有家政效劳工程的名称、单价及说明以方便将来调用客户资料管理:用来管理需要家政效劳的客户信息,该模块也为根底管理模块,方便其他模块的调用预约情况管理:客户预约某项效劳后的管理模块,该模块显示的是客户对某项效劳的预约信息——客户资料、效劳名称、预约时间等。

效劳情况管理:当家政效劳人员完成效劳后总的情况存档,包括:客户资料、效劳名称、预约时间、效劳时间、效劳价格、用户评价的信息查询模块:通过该模块能实现对以上各模块资料的查询系统管理模块:用来完成对数据库的备份、恢复及数据修复Web模块:新用户的网上注册、效劳工程的网上预约及效劳后评价填写等功能将Microsoft .NET框架作为本软件系统编程的主体框架,使用C#语言作为软件的编程语言在Microsoft Visual Stido.NET 2005集成开发环境中进行开发,采用Microsoft 最新的数据引擎ADO.NET连接数据库,并使用C/S、B/S两种架构来保证软件强大的功能,采用甲骨文公司的Oracle 9i高性能数据库来完成软件对数据库记录的频繁操作[5] 本论文的章节安排本论文主要包括以下四章内容:第一章导言主要介绍尚泽家政管理信息系统的开发背景及研究现状并着重介绍了本系统开发的目的和意义第二章中,讨论的重点是系统开发的平台和使用的开发工具主要介绍了开发本系统用到的开发环境:Microsoft Visual Stido.NET 2005以及Oracle 9i数据库支持与ADO.NET 2.0的数据库访问方式。

第三章,主要介绍系统规划与系统分析包括系统运行的软硬件环境、系统模块划分及系统的数据流程图第四章,系统的详细设计、编码和各模块实现的具体代码以及系统的测试与维护等相关内容第五章那么主要是结语和参考文献,总结了本系统所主要解决的问题,展望本课题今后的研究方向1.4 创新点与进一步研究的方向本课题着力体会和感知微软公司于2006年初推出的.NET 2.0新的编程框架与数据访问组件对管理信息系统开发的影响本系统采用微软公司最新的软件开发环境——Microsoft Visual Stido.NET 2005作为软件的开发环境,使用微软公司最新的软件开发框架——Microsoft .NET Framework 2.0作为软件的开发框架,采用甲骨文公司大型数据库系统——Oracle 9i作为软件后台数据库支持来进行软件开发同时根据软件某些功能的需要开发了C/S、B/S两种表现形式总之,本系统的开发力求使用最新的软件开发工具、开发框架和大型数据库系统来说明其对软件开发的影响由于.NET框架非常庞大,开发本系统并不能涉及.NET的方方面面,比方:XML、C#的范型开发、ASP.NET的AJAX技术等,这些都将成为我进一步的研究方向。

2 系统开发工具本系统采用了Microsoft Visual Stido.NET 2005、Oracle 9i数据库作为系统的开发工具,使用Microsoft .NET Framework 2.0中ADO.NET 2.0的bindingSource组件进行数据库连接,Dataset组件进行数据绑定,将前台窗体和后台数据库连接在一起从而实现了数据的读取2.1 Microsoft Visual Stido.NET 2005开发环境Microsoft® Visual Studio®.NET 2005 是一个为专业开发人员设计的完善的、全面地开发环境,它可以被用来创立 Microsoft Windows®,Web 或移动应用解决方案其主要特性包括:(1) 比以前任何一个版本的 Visual Studio 都更加高效地用来开发高性能的应用2) 更容易的创立和部署客户端应用程序利用继承的 ClickOnce 部署功能,可以轻松的实现应用程序及其所以来组件的发布与维护3) 创立高速的、交互的 Web 应用利用 50 多个全新控件和数以百计的内建的效劳开发平安的、个性化的、良好外观与用户体验的 Web 应用。

4) 利用可视化的设计器与编辑器进行更加快速的开发Visual Studio 2005使多层应用中的每个层的开发更加流畅,利用直观的可视化设计器改善了 XML的编辑和XSLT的调试能力5) 创立动态的、高数据处理能力的应用利用集成的数据访问、设计和报表环境,快速建立数据驱动的应用程序[6]6) 利用强大的企业级应用平台7) 解决所有的开发任务使用 Microsoft® .NET Framework 2.0,.NET Compact Framework 2.0,和本地代码建立高性能的应用程序 —— Microsoft Visual Studio® 2005 给与了完全的支持8) 面向高性能计算的体系架构使用64位版本的 .NET Framework 轻松开发 64 位系统2.2 Microsoft .NET Framework 2.0Microsoft .NET Framework 2.0是在Microsoft .NET Framework 1.0和1.1成功的根底上构建的,用于为Web和Microsoft Windows客户端应用程序提供最正确的运行库环境对于.NET Framework 1.1应用程序,Microsoft的兼容性目标是:这些应用程序能够在.NET Framework 2.0上顺利运行(除一组记录在案的更改之外)。

Microsoft .NET Framework 2.0版包括了运行使用.NET Framework开发的应用程序时所需的所有内容,.NET Framework 2.0版提供了改良的缓存、使用ClickOnce改良了应用程序部署和更新、通过 ASP.NET 2.0控件和效劳对最广泛的浏览器和设备提供更强大的支持,从而提高了可扩展性和性能它具有以下特点:(1) 面向对象的编程:.NET Framework和C#从一开始就完全是基于面向对象的[1]2) 语言的无关性:在.NET中,VB.NET、C#、J#和Managed C++等语言都可以编译为通用的中间语言(Intermediate Language)这说明,语言可以用以前没有的方式交互操作3) 对动态Web页面的支持:ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比拟凌乱NET使用一种新技术ASP.NET,它为Web页面提供了一种集成式的支持使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET高级语言来编写,例如C#、J#或VB.NET[2]4) 高效的数据访问:一组.NET组件,总称为ADO.NET,提供了对关系数据库和各种数据源的高效访问。

这些组件也可以访问文件系统和目录NET内置了XML支持,可以处理从非Windows平台导入或导出的数据5) 代码共享:.NET引入了程序集的概念,替代了传统的DLL,可以完美无暇地修补代码在应用程序之间的共享方式程序集有解决版本冲突的正式系统,程序集的不同版本可以同时存在[3]6) 对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集共享程序集是可用于所有软件的公共库,私有程序集只用于某个软件私有程序集功能完备,所以安装过程非常简单,没有注册表项,只需把相应的文件放在文件系统的相应文件夹中即可2.3 Oracle 9i 数据库Oracle是世界上最早商品化的关系型数据库管理系统,是数据库专业厂商Oracle的核心产品,也是当前应用最为广泛、功能最强大、具有面向对象特点、采用了客户机/效劳器架构的数据库系统作为一个通用的数据库系统,Oracle具有完整的数据管理功能,这些功能包括存储大量数据、定义和操纵数据、并发控制、平安性控制、完整性控制、故障恢复、与高级语言接口等Oracle还是一个分布式数据库系统,支持各种分布式功能,特别是支持各种Internet处理作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具,使用户拥有一个良好的应用开发环境。

Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、灵活性等特点特别是,在Oracle 9i中,支持面向对象的功能,支持类、方法和属性等概念,使得Oracle产品成为了一种对象——关系型数据库系统3 系统规划与系统分析3.1 系统运行环境 硬件环境(1) 客户机处理器:Inter Pentium III或更高内存:128MB或更高硬盘空间:100M 显卡:SVGA显示适配器(2) Web效劳器处理器:Inter Pentium IV或志强内存:512MB或更高硬盘空间:500M 显卡:SVGA显示适配器(3) 数据库效劳器处理器:Inter Pentium IV或志强内存:2GB或更高硬盘空间:40G 显卡:SVGA显示适配器 软件环境(1) 客户机操作系统:windows 2000/xp数据库组件:MDAC 2.8或更高 、Oracle 9i或更高客户端.NET Framework:2.0(2) Web效劳器操作系统:windows 2000 Server/2003 Server数据库组件:MDAC 2.8或更高、Oracle 9i或更高客户端.NET Framework:2.0IIS:5.0或更高(3) 数据库效劳器操作系统:windows 2000 Server/2003 Server数据库组件: Oracle 9i或更高3.2 系统的总体结构根据需求分析和该系统的功能需求,将本系统划分为七大功能模块,分别为:效劳工程管理、客户资料管理、预约情况管理、效劳情况管理、查询、系统管理、Web,系统总功能图如图5所示,各模块功能图如图6、7、8、9、10、11所示[7] 。

图5 系统总功能图 图6 预约情况管理 图7 效劳情况管理图8 客户资料管理图9 效劳工程管理图10 系统管理图11 查询3.3 系统的数据流程分析根据以上系统功能模块图,可以明确本系统的业务流程主要涉及添加、删除、修改及查询4局部其数据流程图如图12所示[8]图12 数据流程图3.4 系统数据库设计 数据表设计根据需求分析和系统设计的具体要求,按照不同模块的不同功能划分设计了本系统的数据库体系结构并建立表空间puze将所有表全都放入表空间中,表的具体设计见下面代码1) 预约管理表:CREATE TABLE YUYUE( ID NUMBER(5), YUYUE_RIQI VARCHAR2(50 BYTE), YUYUE_SHIJIAN VARCHAR2(50 BYTE), WANCHENG NUMBER(1), BEIZHU VARCHAR2(4000 BYTE))(2) 效劳管理表:CREATE TABLE FUWU( ID NUMBER(5) NOT NULL, KEHU_ID NUMBER(5) NOT NULL, JIAOGEBIAO_ID NUMBER(5) NOT NULL, YUYUE_ID NUMBER(5) NOT NULL, MIANJI NUMBER(7,2), DANJIA NUMBER(5,2), FEIYONG NUMBER(20,2), RENSHU NUMBER(5), FUWU_RIQI VARCHAR2(50 BYTE), FUWU_SHIJIAN VARCHAR2(50 BYTE), LIQU_SHIJIAN VARCHAR2(50 BYTE), XIAOGUO VARCHAR2(50 BYTE), YIJIAN VARCHAR2(4000 BYTE), FUKUAN_XINGSHI VARCHAR2(50 BYTE), FUKUAN NUMBER(1), BEIZHU VARCHAR2(4000 BYTE))(3) 客户表:(4) 这个表是参考了而设计的CREATE TABLE KEHU( ID NUMBER(5) NOT NULL, KEHU_NAME VARCHAR2(30 BYTE), QU VARCHAR2(50 BYTE), YUANQU VARCHAR2(50 BYTE), LOUHAO VARCHAR2(50 BYTE), DIANHUA VARCHAR2(50 BYTE), ZULIN NUMBER(1), ID_CARD VARCHAR2(20 BYTE), CARD_KIND NUMBER(1), BEIZHU VARCH )(5) 价格表:CREATE TABLE JIAGEBIAO( ID NUMBER(5) NOT NULL, FUWU_NAME VARCHAR2(50 BYTE), DANJIA NUMBER(5,2), DAZHE NUMBER(2), BEIZHU VARCHAR2(4000 BYTE)) 触发器设置(1) ID自增触发器:CREATE OR REPLACE TRIGGER yuyue_id BEFOREINSERT ON yuyueFOR EACH ROWbegin SELECT yuyue_id.NEXTVAL INTO :NEW.id FROM DUAL;End yuyue_id;/(2) 删除预约表中项同时也删除效劳表中项的触发器:CREATE OR REPLACE TRIGGER PUZE.shanchuAFTER DELETEON PUZE.YUYUEREFERENCING NEW AS New OLD AS OldFOR EACH ROWBEGIN DELETE FROM FUWU WHERE FUWU.ID=ID;END shanchu;/ 视图设置为查询方便,关联多条记录,所以在数据库中建立两条属性为只读的视图。

1) 预约情况显示所使用的视图CREATE OR REPLACE VIEW XIANSHI(ID, KEHU_ID, JIAOGEBIAO_ID, YUYUE_ID, MIANJI, DANJIA, FEIYONG, RENSHU, FUWU_RIQI, FUWU_SHIJIAN, LIQU_SHIJIAN, XIAOGUO, YIJIAN, FUKUAN_XINGSHI, FUKUAN, BEIZHU, JIAGEBIAO_HAO, FUWU_NAME, JIAGEBIAO_DANJIA, DAZHE, JIAGEBIAO_BEIZHU, YUYUE_HAO, YUYUE_RIQI, YUYUE_SHIJIAN, WANCHENG, YUYUE_BEIZHU, KEHU_HAO, KEHU_NAME, QU, YUANQU, LOUHAO, DIANHUA, ZULIN, ID_CARD, CARD_KIND, KEHU_BEIZHU)AS SELECT FUWU.ID, FUWU.KEHU_ID, FUWU.JIAOGEBIAO_ID, FUWU.YUYUE_ID, FUWU.MIANJI, FUWU.DANJIA, FUWU.FEIYONG, FUWU.RENSHU, FUWU.FUWU_RIQI, FUWU.FUWU_SHIJIAN, FUWU.LIQU_SHIJIAN, FUWU.XIAOGUO, FUWU.YIJIAN, FUWU.FUKUAN_XINGSHI, FUWU.FUKUAN, FUWU.BEIZHU, JIAGEBIAO.ID AS JIAGEBIAO_HAO, JIAGEBIAO.FUWU_NAME, JIAGEBIAO.DANJIA AS JIAGEBIAO_DANJIA, JIAGEBIAO.DAZHE, JIAGEBIAO.BEIZHU AS JIAGEBIAO_BEIZHU, YUYUE.ID AS YUYUE_HAO, YUYUE.YUYUE_RIQI, YUYUE.YUYUE_SHIJIAN, YUYUE.WANCHENG, YUYUE.BEIZHU AS YUYUE_BEIZHU, KEHU.ID AS KEHU_HAO, KEHU.KEHU_NAME, KEHU.QU, KEHU.YUANQU, KEHU.LOUHAO, KEHU.DIANHUA, KEHU.ZULIN, KEHU.ID_CARD, KEHU.CARD_KIND, KEHU.BEIZHU AS KEHU_BEIZHUFROM FUWU, JIAGEBIAO, KEHU, YUYUEWHERE FUWU.KEHU_ID=KEHU.ID AND FUWU.JIAOGEBIAO_ID=JIAGEBIAO.ID AND FUWU.YUYUE_ID=YUYUE.ID/(2) 效劳管理显示所使用的视图CREATE OR REPLACE VIEW FUWU_VIEW(ID, KEHU_ID, JIAOGEBIAO_ID, YUYUE_ID, MIANJI, DANJIA, FEIYONG, RENSHU, FUWU_RIQI, FUWU_SHIJIAN, LIQU_SHIJIAN, XIAOGUO, YIJIAN, FUKUAN_XINGSHI, FUKUAN, BEIZHU, JIAGEBIAO_HAO, FUWU_NAME, JIAGEBIAO_DANJIA, DAZHE, JIAGEBIAO_BEIZHU, YUYUE_HAO, YUYUE_RIQI, YUYUE_SHIJIAN, WANCHENG, YUYUE_BEIZHU, KEHU_HAO, KEHU_NAME, QU, YUANQU, LOUHAO, DIANHUA, ZULIN, ID_CARD, CARD_KIND, KEHU_BEIZHU)AS SELECT FUWU.ID, FUWU.KEHU_ID, FUWU.JIAOGEBIAO_ID, FUWU.YUYUE_ID, FUWU.MIANJI, FUWU.DANJIA, FUWU.FEIYONG, FUWU.RENSHU, FUWU.FUWU_RIQI, FUWU.FUWU_SHIJIAN, FUWU.LIQU_SHIJIAN, FUWU.XIAOGUO, FUWU.YIJIAN, FUWU.FUKUAN_XINGSHI, FUWU.FUKUAN, FUWU.BEIZHU, JIAGEBIAO.ID AS JIAGEBIAO_HAO, JIAGEBIAO.FUWU_NAME, JIAGEBIAO.DANJIA AS JIAGEBIAO_DANJIA, JIAGEBIAO.DAZHE, JIAGEBIAO.BEIZHU AS JIAGEBIAO_BEIZHU, YUYUE.ID AS YUYUE_HAO, YUYUE.YUYUE_RIQI, YUYUE.YUYUE_SHIJIAN, YUYUE.WANCHENG, YUYUE.BEIZHU AS YUYUE_BEIZHU, KEHU.ID AS KEHU_HAO, KEHU.KEHU_NAME, KEHU.QU, KEHU.YUANQU, KEHU.LOUHAO, KEHU.DIANHUA, KEHU.ZULIN, KEHU.ID_CARD, KEHU.CARD_KIND, KEHU.BEIZHU AS KEHU_BEIZHUFROM FUWU, JIAGEBIAO, KEHU, YUYUEWHERE FUWU.KEHU_ID=KEHU.ID AND FUWU.JIAOGEBIAO_ID=JIAGEBIAO.ID AND FUWU.YUYUE_ID=YUYUE.ID/4 系统设计与实现系统设计就是已确定软件系统的总体结构,给出系统中各个组成模块的功能和模块间的联系。

考虑如何实现这个软件系统,直到对系统中的每个模块给出足够的过程性描述通过适当的设计方法,实现用户对本软件各项功能的要求下面是各模块的具体设计与实现[9]4.1 数据库连接过程(1) Microsoft Visual Stido.NET 2005中可视化连接数据库:①双击“bindingSource〞控件将“bindingSource〞控件添加到程序中②在“bindingSource〞属性窗口中的“DataSource〞中点击下拉菜单,选择“新建数据库连接〞,弹出“新建数据库连接〞对话框〔图1〕图1 新建数据库连接③选择数据库,点击“下一步〞,出现“数据库配置向导〞对话框〔图2〕图2 数据库配置向导④选择“新建连接〞,翻开“数据源选择〞〔图3〕对话框,选择“Oracle数据库〞,并选择.NET提供的驱动程序图3 新建连接⑤翻开“添加连接〞〔图4〕对话框,输入数据库效劳器的TSN名称及用户名、密码后,点击“完成〞⑥“bindingSource〞建立完成后会自动建立其对应的“DataSet〞图4 添加连接(2)通过代码连接数据库:string myConnString = "user id=zk;data source=zkqx;password=*****";OracleConnection myConnection = new OracleConnection(myConnString);OracleCommand catCMD = myConnection.CreateCommand();catCMD mandText = " SELECT CZYDM,CZYMC,CZYMM,CZYQX FROM ZC_CZY ";myConnection.Open();OracleDataReader myReader = catCMD.ExecuteReader(); while (myReader.Read()) { Console.WriteLine("\t{0}\t{1}\t{2}\t{3}", myReader.GetString(0),myReader.GetString(1),myReader.GetString(2),myReader.GetString(3)); }myReader.Close();myConnection.Close();4.2 系统主界面1、系统设计系统主界面(图13)使用类似于MAC OS的导航菜单作为系统的主菜单,使用各项功能需由主菜单进入。

图13 系统主界面2、系统实现主菜单的设计使用了无标题栏的windows form窗体,同时又使用了多种UI控件,这样做到了以最少的代码量写出最漂亮的界面采用Devcomponents DotNetBar组件,并在系统启动时初始化,来实现类似于MAC OS的导航菜单获取系统所在目录代码:(1) 定义静态类并定义静态全局变量使其存放当前路径public static class mdburl { public static string mdb; public static string mainurl ; }(2) 获取系统路径在窗体载入的方法里调用Path.GetDirectoryName方法寻找系统路径private void Form1_Load(object sender, System.EventArgs e){mdburl.mainurl = Path.GetDirectoryName(Path.GetFullPath("./linkdb.dll"));}4.3 主程序界面1、系统设计该界面为程序的主体局部(图14),封装了大局部的处理逻辑,由于使用存储过程、触发器和视图在数据库中封装了大局部的数据处理,所以界面上仅做一些按钮的逻辑判断,减轻了程序设计负担降低程序难度减少了程序错误。

2、系统实现主程序程序使用了类似的UI设计,水晶化按钮、重新定义的标题栏等,在数据操作上将复杂的操作交给Oracle,本地的数据操作是通过Dataset与显示界面的绑定来完成的按钮不同状态实现代码:鼠标进入、按下、松开、离开pictureBox后分别触发其MouseEnter、MouseDown、MouseUp、MouseLeave事件,而后设置pictureBox的Image属性调入不同的图片来显示不同的按钮文字鼠标进入按钮:private void pictureBox17_MouseEnter(object sender, System.EventArgs e){pictureBox17.Image=Image.FromFile(mdburl.mainurl+"\\obj\\del_hs.gif");}鼠标按下:Private void pictureBox17_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){pictureBox17.Image=Image.FromFile (mdburl.mainurl+"\\obj\\del_ax.gif");}鼠标松开:private void pictureBox17_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e){pictureBox17.Image=Image.FromFile (mdburl.mainurl+"\\obj\\del_hs.gif");}鼠标离开:private void pictureBox17_MouseLeave (object sender, System.EventArgs e){pictureBox17.Image=Image.FromFile (mdburl.mainurl+"\\obj\\del_ys.gif");}图14 主程序界面4.3.1 预约情况管理模块1、系统设计通过一个数据网格来显示根本预约信息,如果查看该预约的全部信息可以选中该数据网格中的某一行,此时下面的文本框中将会出现本条预约的所有信息。

同时提供了只输入用户ID即可查询用户的详细信息并可以进行常规的修改与删除操作[10] 2、系统实现将数据网格与文本框绑定至视图所提供的DataSet上,由于使用了统一的DataSet游标,从而实现了数据网格与文本框显示信息的联动(图14)同时使用了轻量级的数据访问组件DateReader,从而实现了快速的数据访问1) 数据绑定调用数据适配器TableAdapter的Fill方法填充dataSet来实现数据绑定this.xIANSHITableAdapter.Fill(this.dataSet6.XIANSHI);(2) 系统初始化时填充效劳工程下拉菜单从数据库的jiagebiao中检索fuwu_name并填充至下拉菜单OracleConnection conn = new OracleConnection(connStr);sql = "select * from jiagebiao";OracleCommand cmd = conn.CreateCommand();cmd mandText = sql;conn.Open();OracleDataReader MyReader = cmd.ExecuteReader();while (MyReader.Read()){ this boBox1.Items.Add(MyReader.GetOracleString(1));} comboBox1.SelectedIndex = 0; conn.Close();(3) 使用用户ID快速查询用户信息当输入用户ID后就会触发textBox的TextChanged事件,从而得到用户ID,然后使用DataReader到数据库的kehu表中进行检索,将检索到的信息输出到其他textBox中,假设未检索到信息那么不进行输出。

private void textBox11_TextChanged(object sender, System.EventArgs e){ if (textBox11.Text!="" ) { OracleConnection conn = new OracleConnection(connStr); string sql = "select DIANHUA,LOUHAO,qu,yuanqu,KEHU_NAME from kehu where id=" + textBox11.Text; OracleCommand cmd = conn.CreateCommand(); cmd mandText = sql; conn.Open(); OracleDataReader rs = cmd.ExecuteReader(); if (rs.Read()) { textBox9.Text= Convert.ToString (rs.GetValue(0)); textBox12.Text= Convert.ToString (rs.GetValue(1)); textBox14.Text= Convert.ToString (rs.GetValue(2)); textBox13.Text= Convert.ToString (rs.GetValue(3)); textBox10.Text= Convert.ToString (rs.GetValue(4)); } else { textBox9.Text= ""; textBox12.Text=""; textBox14.Text= ""; textBox13.Text= ""; textBox10.Text= ""; } conn.Close(); } else { textBox9.Text= ""; textBox12.Text=""; textBox14.Text= ""; textBox13.Text= ""; textBox10.Text= ""; } }(4) 用户ID输入有效性验证用户在textBox中每输入一个字符都会触发textBox的KeyPress事件来验证用户输入的内容是否为数字。

private void textBox11_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e){ if ((e.KeyChar<48 || e.KeyChar>57) && e.KeyChar!=8 )e.Handled=true;}(5) 删除预约根据预约ID删除dataset中的相关记录再调用TableAdapter的Update来更新数据库中yuyue表中的信息,而数据库中fuwu表中信息那么是由触发器自动删除private void pictureBox17_Click(object sender, System.EventArgs e) { MessageBoxButtons buttons = MessageBoxButtons.YesNo; DialogResult result; result =MessageBox.Show ("确认删除该预约信息??","确认删除",buttons,MessageBoxIcon.Warning); if (result==DialogResult.Yes) { DataRow findrow = dataSet6.Tables["yuyue"].Rows.Find(textBox1.Text); if (findrow != null) { findrow.Delete(); this.yUYUETableAdapter.Update(this.dataSet6.YUYUE); dataSet6.YUYUE.AcceptChanges(); this.xIANSHITableAdapter.Fill(this.dataSet6.XIANSHI); MessageBox.Show("预约信息已删除!! ", "删除完毕"); } (6) 添加预约(图15)图15 添加预约新窗体显示:实例化一个新的窗体并调用它的show方法将其显示出来。

private void pictureBox18_Click(object sender, System.EventArgs e){ active=true; Form5 f5=new Form5(); f5.Show(); }添加预约:先将输入的信息全部写入dataset再由dataset一次性更新数据库,因为添加记录时是同时向yuyue、fuwu两个表中添加记录,必须使用数据库库的事务处理的特性来保证写入数据库的信息完整、有效private void pictureBox14_Click(object sender, System.EventArgs e){ if (comboBox1.Text!="") { OracleConnection conn = new OracleConnection(connStr); string sql = "select DIANHUA,LOUHAO,qu,yuanqu,KEHU_NAME from kehu where id=" + textBox11.Text; 。

下载提示
相关文档
正为您匹配相似的精品文档