《桌面日历系统的设计与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《桌面日历系统的设计与实现毕业设计论文.doc(34页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)桌面日历系统的设计与实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:桌面日历系统的设计与实现摘 要自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。而传统的日程记事本逐渐显现出在当今时代的不足和局限性,比如不便携带、不便查阅、不能自动提醒等等,电脑桌面日历由此孕育而生。很快,桌面日历就以其方便的日期查询、个性化的日程安排、精确的闹钟提醒与配套的日志系统、美观的界面设计,受到广大电脑办公者的喜爱。本设计就是针对当前网络上众多的桌面日历,综合其各项基本功能来开发一套属于自己的个性化日历日志系统。本
2、设计主要采用C#+SQL的C/S设计模式,来实现不同用户的登录、日程编辑、日程提醒、日期查询、节假日管理等工作。方便了使用者对每日行程的掌握,也保护了各使用者之间的私人信息。本设计按照功能模块分为用户登录模块、用户注册、日历和时间模块、节假日模块、日程行程模块、自动提醒模块、数据库模块。本文详细地介绍了该日历日程系统的功能需求、系统设计和具体实现。并简要介绍了系统开发采用的过程及方法。关键词:桌面日历;日程;多用户Design and Development of Desktop Calendar SystemAbstractAs PC becomes more and more popula
3、r since last century, peoples work and life become more and more convenient, and people rely increasingly on computers. However, the conventional notepad has revealed its deficiencies and limitations, such as inconvenience. And conventional notepad can not alarm automatically also. So, the desktop c
4、alendar appears. Because of its convenient date inquiry, individualized schedule management system, accurate schedule alarm system and friendly user interface, desktop calendar is highly estimated among computer workers.Combining the functions of a number of todays desktop calendars, this design aim
5、s to develop an individual desktop calendar and schedule system. It is developed by C# and SQL, based on C/S. Its functions include “multi-user login”, “schedule management”, “schedule alarm”, “date inquiry”, “holiday management” and so on. The calendar is convenient for users to check the schedule
6、everyday, and also can protect each users private information.The calendar includes “user login” module, “user registry and edition” module, “date and time” module, “holiday manage” module, “schedule manage” module, “schedule alarm” module and “database” module. This article describes the functional
7、 requirement, system design and detail implementation. It also describes the methods and development process of this system in brief.Key words: Desktop Calendar;Schedule;Multiple Users目 录论文总页数:23页1 引言12 相关理论基础12.1 C/S模式22.2 Visual Studio 2005 C#22.2.1 C#的介绍22.2.2 C#的弱点32.3 SQL Server 200032.3.1 SQL介
8、绍32.3.2 Microsoft SQL Server 2000简介43 系统需求分析43.1 用户需求43.2 功能需求43.2.1 未登录用户43.2.2 普通登录用户53.2.3 管理员53.3 性能需求54 详细设计与实现64.1 系统功能设计64.2 数据库设计64.3 各表之间的关系图74.4 系统功能实现84.4.1 用户登录模块84.4.2 用户注册模块94.4.3 日历主模块114.4.4 日志记录模块124.4.5 日志提醒模块144.4.6 节假日设置模块145 系统测试155.1 测试环境155.2 测试结果165.3 系统的安全性测试195.3.1 密码的安全性19
9、5.3.2 日志信息的安全性195.3.3 数据库的安全性19结 论20参考文献20致 谢22声 明231 引言自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。而传统的日历和日程记事本逐渐显现出在当今时代的不足和局限性,比如传统日历或记事本一般为纸制品,加大了对森林资源的需求,与当今提倡绿色环保的思想相背;传统记事本不方便携带、记录和修改;一般不带有日历,即使有也仅仅局限于某一年的日历,不方便使用者查询日期;使用日历和记事本当查询某天的日程信息的时候非常烦琐,而且对该天前后的日程信息也很不好把握;没有自动提醒功能,不能对使用者的行程进行很好
10、的规划和安排。总之,传统的日历和记事本都不能对使用者的时间进行系统化的规划。针对以上的传统日历和记事本的局限性,电脑桌面日历孕育而生。本文所介绍的桌面日历系统,就是专门为那些常年习惯于电脑办公,喜欢对自己的行程进行系统化管理的人们所开发的一款桌面软件。该软件的优点如下:1,将日历和记事本集成到一款软件上,让用户在记录和查询日志的时候也能方便得查阅日期情况。2,日志行程的自动提醒,该系统能根据用户自己设置的行程提醒时间来提醒用户,时差是以毫秒级计算,非常之精确。3,人性化的节假日设置,可以根据用户的喜好来记录节假日和一些重要的日子,并在日历主界面上显示当天的节假日信息。4,借助数据库可以方便得对
11、用户资料和信息进行存取,也有效得保护了各个用户之间的信息。本文介绍了C/S模式下的桌面日历系统的设计以及开发过程,主要包括了以下几个方面的内容:1,简要介绍C#和SQL知识。2,介绍该系统的前期设计过程。3,介绍该系统的具体代码实现过程。4,介绍开发过程中遇到的各种技术问题以及解决方案。计算机的发明应用,被视为人类的第三次重大的科学技术革命,是一次飞跃。过去的革命最高成就就是“用机器制造机器”,是手的延长,而计算机的出现却能做到“用机器控制机器”,是脑的延伸,是提高生产效率的主要工具。通过以上分析不难得出结论,在计算机日益普及的今天,很多传统的东西必须与电脑相结合才能进一步发展。这样一套桌面日
12、历系统,也是让传统日历和记事本继续生存并发展的重要一步。2 相关理论基础该系统采用的是C/S模式,设计平台为Visual Studio 2005 C#,后台数据库系统为SQL Server 2000。下面简单介绍下:2.1 C/S模式C/S全名为Client/Server应用体系,又称客户端/服务器模式。Client使用各项操作的用户界面接口来处理分析和数据输入/输出;Server通常采用高性能的PC机、工作站或小型机,并采用大型的数据库系统,如Oracle、SQL Server等,主要实现数据的存储功能,以及相关的后台业务逻辑流程处理。C/S模式的优点在于:能充分发挥客户端PC机的处理能力,
13、许多的工作可以交由客户端处理后再提交给服务器,所以客户端的响应速度非常快。但C/S模式也有一些缺点,比如:客户端需要安装专门的客户端软件;维护和升级的成本很高;对客户端的操作系统也有一定的限制。CLIENTSERVER GUI界面数据处理数据处理数据存储图1-1 C/S结构示意图2.2 Visual Studio 2005 C#2.2.1 C#的介绍在过去的二十年里,C和C+已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。对于C/C+用户来说,最理想的
14、解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。C#是由微软开发的一种全新的、面向对象的编程语言,作为Visual Studio中的一部分推出。既保持了C+中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。C#语言将在保持C/C+灵活性的基础上为程序员带来更高效的RAD开发方式。它不仅能用于WEB服务程序的开发,并且还能开发强大的系统级程序。C#是种非常类似于JAVA的语言,适用于各种操作系统,并且与Windows
15、紧密地结合在一起。微软称C#是由C和C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合Visual Basic的高效率和C+的强大功能。事实上,C#将是完全依靠Windows的最完美产物。那些困绕Java SDK, MFC 和SET的数据库已成为过去。你想放入C#的任何东西(无论何种语言),只要在Windows的.NET子系统下建立和包装后都可以使用Windows的运行库。2.2.2 C#的弱点首先,在大量的现有Windows平台上,C# 的程序还不能运行,因为C# 程序需要 .NET运行库为基础,而 .NET运行库将作为新一代的Windows(Whistler)
16、的一部分发行, 或以Service Pack的形式提交给Windows Me 和 Windows 2000用户。所以在近期,C# 会主要在服务器上得到应用。其次,C# 能够使用的组件和库还只有 .NET 运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程,同时各软件开发商的支持也很重要。第三,JAVA的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而C# 的鼓吹者目前只有名声不佳的微软,且只能运行在Windows上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么工具用的最熟,那就是最好的工具。尤其对C+
17、的使用者,C# 没有带来任何新东西,因为.NET运行库在C+中也可以使用,没有要换的绝对的理由。2.3 SQL Server 20002.3.1 SQL介绍SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统System R开发的一种查询语言,它的前身是Square语言,其后由IBM公司1981年推出。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据
18、。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingress等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成绝大多数数据库的操作。2.3.2 Microsoft SQL Server 2000简介Microsoft SQL Server 2000是目前使用最广泛的数据库,它与Windows网络操作系统的无缝集成,智能化的内容管理,强
19、大的功能,使它得到广大用户的喜爱。SQL Server能与Microsoft 其他组件有机地结合,并充分利用它们提供的服务或功能(如安全管理、事件日志、性能监视器、内存管理和异步处理等),从而增强了SQL Server数据库系统的功能,同时占用较少的系统资源。另外,用户可以使用Web浏览器查询存储在SQL Server 2000数据库中的数据,且分布式查询使得我们可以引用来自不同数据源的数据。SQL Server 2000数据库容量庞大,每个数据库中可创建多达20万个数据表,数据表中的记录的行数只受服务器硬盘空间的限制。此外,SQL Server 2000数据库与普通的本地类型数据库系统(例如
20、VFP,DBASE,PARADOX,ACCESS)等不同,本地类型的数据库系统只是简单的文件存取,缺乏SQL Server2000等系统所拥有的诸如:数据完整性、安全性、事务处理、网络多用户处理等必备的功能。3 系统需求分析3.1 用户需求该系统的用户主要分为三种:未登录用户、登录用户、管理员。未登录用户只能查看日历主界面和注册模块,登录用户可以使用除删除用户和修改其他用户以外功能,管理员可以使用该桌面日历所有功能。登录用户和系统管理员都是通过密码验证登录,当角色操作完成后点击“注销”或“退出”按钮退出登录状态。3.2 功能需求系统功能模块主要包括以下几个方面:1,用户注册模块;2,登录模块;
21、3,日志提醒模块;4,节假日模块;5,日历主模块;6,用户信息、节假日信息和日志信息都保存在数据库模块中.以下按照不同的用户对具体功能进行描述:3.2.1 未登录用户未登录用户运行该系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日。用户当点击“日志记录”或“节日设置”的时候,系统提示对话框显示“该用户为未登录用户”,点击确定按钮后进入登录界面,输入账号和密码后实现用户登录。未登录用户在日历主界面或登录界面上点击“用户信息”可以进入用户注册界面,在用户注册界面可以实现用户的注册,可以查看其他已注册用户的基本信息,可以对某用户名进
22、行查找,但是不能删除其他用户或修改其他用户的个人信息,当点击“删除”或“修改”按钮后有错误信息提示。3.2.2 普通登录用户用户通过登录模块登录系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日,可以访问节日设置模块并对节日进行添加和删除。登录用户可以访问用户日志模块并对日志信息进行添加和删除,当系统时间到达当前登录用户设置的日志提醒时间时,系统自动加载日志提示模块提醒用户,用户可以点击日志提示界面上的“删除日志”按钮从数据库中删除该日志信息。登录用户可以在日历主界面上点击“用户信息”进入用户注册和信息界面,在用户注册界面可以实
23、现注册其他用户,可以查看其他已注册用户的基本信息,可以修改当前登录用户的基本信息和密码,可以对某用户名进行查找,但是不能删除其他用户或修改其他用户的个人信息。当点击“删除”或选择其他用户后点击“修改”按钮,有错误信息提示。登录用户在日历主界面上点击“用户注销”可以退出当前登录,并连接到用户登录模块。3.2.3 管理员管理员除了可以实现登录用户的所有功能外,还有更高的权限,可以对其他用户信息进行修改和删除。可以对数据库进行直接操作,可以查看其他用户的资料等等。但是管理员不能查看其他注册用户的登录密码和日志信息,因为密码在数据库里是采用的MD5加密,而日志信息也采用了Unicode编码技术,在一定
24、程度上保护了其他注册用户的权益。3.3 性能需求该系统主要是为了方便用户进行日程管理,所以要求界面要简洁,操作要方便。功能要完善,并且不能出现导致该系统崩溃的重大BUG。因为该系统为多用户系统,所有用户资料均保存在数据库内,所以要求数据库安全性要高,运行要稳定,执行速度快。为保护用户信息,各用户密码和每日行程不能在数据库中以明文显示。该系统基于Windows操作平台,符合当前大多数人的操作系统,更加大众化。4 详细设计与实现4.1 系统功能设计该桌面日历系统是基于C/S结构的应用程序系统,由C#+SQL实现。客户端程序由Visual Studio 2005 C#制作,用于与用户交互;后台数据库
25、使用SQL 2000,由带有逻辑结构关联的表组构成。下图为系统功能结构示意图: 登录用户普通用户管理员删除用户资料修改用户信息注册新用户使用日志记录使用节假日模块使用日志提醒使用日历主模块未登录用户图4-1 用户功能示意图如图4-1所示,按登录与否可分为登录用户和未登录用户,其中登录用户又可分为管理员和普通用户,各类别的用户拥有对该系统中各功能的访问使用权限。4.2 数据库设计根据需求分析,该系统后台数据库共分为4个表,以下分别给出各个数据库表的简单描述。UserLogin用户登录表用于存储用户登录信息,以供登录密码验证,并分配用户编号。该表分为3个字段,以UserNumber字段为主键分别与
26、UserInfo和MsgInfo表相关联,各字段的属性和作用如表4-1表4-1:用户登录表字段名字段类型是否主键说明UserNamevarchar否定义用户登录名UserPwdvarchar否定义用户登录密码UserNumberint是定义唯一标识的用户编号UserInfo用户基本信息表用于存储用户的基本信息,如年龄、性别等。该表分为6个字段,其中UserNumber作为外键与UserLogin表相关联,各字段的属性和作用如表4-2字段名字段类型是否主键说明UserNumberint是唯一标识的用户编号UserAgeint否定义用户的年龄UserSexint否定义用户性别,1为男,2为女Use
27、rAddressvarchar否定义用户的地址,允许为空UserTelvarchar否定义用户的电话号码,允许为空UserEmailvarchar否定义用户的E-Mail地址,允许为空表4-2:用户基本信息表MsgInfo用户日志信息表用于储存各用户设置的日志信息,以及系统自动提醒用户的时间。该表分为4个字段,其中UserNumber作为外键与UserLogin表相关联,各字段的属性和作用如表4-3字段名字段类型是否主键说明MsgIDint是唯一标识的用户日志信息编号MsgInfoTextvarchar否定义用户的日志信息内容MsgDateTimedatatime否定义用户的日志提醒时间Use
28、rNumberint是唯一标识的用户编号表4-3:用户日志信息表JInfo节假日信息表用于储存节假日信息,没有与其他表相关联。该表分为4个字段,其中JID作为该表的主键,各字段的属性和作用如表4-4表4-4:节假日信息表字段名字段类型是否主键说明JIDint是唯一标识的节假日编号JNamevarchar否定义的节假日名称JDateTimeMint否定义节假日的月份JDateTimeDint否定义节假日的日期4.3 各表之间的关系图该关系图是由SQL数据库的“新建关系图向导”自动生成。UserLogin(用户登录表)、UserInfo(用户基本信息表)和MsgInfo(日志信息表)通过UserN
29、umber(用户编号)相关联,其中UserLogin(用户登录表)的UserNumber为PK(主键),UserInfo(用户基本信息表)和MsgInfo(日志信息表)的UserNumber为FK(外键)。JInfo(节假日信息表)相对其他三张表独立,没有关联关系。图4-2 数据库表关系图4.4 系统功能实现根据系统功能需求分析,系统主要划分为以下六个模块:4.4.1 用户登录模块功能说明:通过用户输入的用户名、密码与数据库UserLogin表的UserName字段和UserPwd字段相比较判断其有效性,来实现用户的登录。每次判断用户密码时将密码采用MD5加密后与数据库UserLogin表的U
30、serPwd字段相比较。如是有效用户则显示“登录成功”消息框,点击“确定后”登录到日历主界面,并设置username为当前登录用户名。如是无效用户则显示“登录失败”消息框,并提示重新输入用户名和密码。以下为用户登录密码验证部分的伪代码:if (密码长度 5)MessageBox.Show(密码的长度不对,没有小于5位的密码,请重新输入!);else if(密码长度 = 0)MessageBox.Show(密码不能为空,请重新正确的输入您的登录密码!);elseif (连接数据库并将用户名和采用MD5加密后的密码与数据库中资料对比 = true)MessageBox.Show(登录成功!);关闭
31、登录界面并释放资源;将当前登录的用户名赋值到其他窗体;打开当前登录用户的日志信息窗体;else MessageBox.Show(您输入的密码有错误请重新输入!);清除登录密码框内的字符并设置为焦点;4.4.2 用户注册模块功能说明:用于用户注册,资料修改,用户删除和查询。注册界面将从数据库中读取出的所有用户信息显示出来。图4-3 注册模块界面用户注册时根据用户所填写的信息存入数据库。需要判断用户名是否合法,用户名是否重复,两输入密码是否大于6位并相同,是否已选择年龄。不合法的注册信息显示错误消息框,并提示重新输入。合法的用户名和密码保存在UserLogin表中,用户名采用明文保存,密码采用MD
32、5加密保存,并为该用户分配一个UserNumber的整型编号。合法的用户个人资料保存在UserInfo表中,并使用UserNumber字段与UserLogin表相关联。资料修改时根据选中的用户UserNumber修改用户信息,未注册用户不能修改用户信息,注册用户只能修改自己的信息,管理员可以修改所有用户信息。修改用户信息时也要判断合法性,并将合法信息存放到相应的表中。用户删除只有管理员可以访问,根据选中的用户UserNumber删除用户信息,并将数据库中MsgInfo表、UserInfo表和UserLogin表中该用户的信息全部删除。用户查询可以根据输入的用户名查询显示出的用户,并将该用户所在
33、行选中。以下为部分代码和伪代码:/ MD5 32位加密代码static string UserMd5(string str)string cl = str;string pwd = ;MD5 md5 = MD5.Create();/实例化一个md5对像/ 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择byte s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl);/ 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得for (int i = 0; i = 6 & 2次输入的密码相同 & 性别选择代码 0)
34、 连接数据库;将新用户信息插入到UserLogin表中,并为该用户分配一个编号;else输出提示错误信息;4.4.3 日历主模块功能说明:显示每一年的日历,显示当前系统时间,并根据数据库中的节假日设置显示选中日期的节日信息,是连接其他系统模块的入口。该界面使用C#自带的MonthCalendar控件来显示每一年的日历,将当前的系统时间显示在Label静态文本框里,并根据数据库中的节假日设置显示选中日期的节日信息。图4-4 日历主界面当用户点击“节日设置”按钮或“日志记录”按钮时,先判断username是否为空。如果为空则提示错误信息“用户尚未登录”,并打开登录界面。如果username不为空则
35、直接打开节假日设置界面或日志设置界面。此模块还根据当前系统时间和当前登录用户的日志信息来确定是否创建日志提醒窗体。当用户点击“用户信息”按钮时,直接打开用户注册界面。当用户点击“注销”按钮时,将username设置为空,并打开登录界面。当用户点击“系统退出”按钮时,退出桌日历系统,关闭所有窗体并释放占有资源。以下为部分伪代码。/ 当当前系统时间到达用户设置的日志响应时间时的事件处理伪代码声明一个空字符串msg;if (当前登录用户名Username不为空)连接数据库,从数据库MsgInfo表中读取出当前登录用户的日志信息;while (用户设置了当前时间的日志信息)将该日志信息的内容放入msg
36、中;if (日志信息不为空)以当前登录用户名为参数创建日志提醒模块窗体;if (是否有模式地显示窗体 != true)显示窗体的文本信息 = 采用Unicode解码后的msg;显示窗体的高度 = 获取的屏幕分辨率高度 + 10;显示窗体的左边框 = 屏幕分辨率宽度 显示窗体的宽度 + 5;显示窗体的生存时间 = true;显示日志提醒窗体;/ 显示当天节日伪代码文本框文本 = 今天不是节日;设置用于数据库查询命令的参数数组,并将数组第一个元素设置为“月”,数组第2个元素设置为“日”;从数据库MsgInfo表中读取选定日期的节假日信息;while (是否有该条记录 = true)日历主窗体的文本
37、框文本 = 今天是:+当天节假日名称;4.4.4 日志记录模块功能说明:用于根据当前登录的用户名,从数据库的MsgInfo表中读出当前登录用户的所有日志信息并显示在Datagridview中。并根据用户需要进行添加和删除日志信息。图4-5 日志记录模块界面当点击“添加”按钮时,系统将用户输入的日志信息和选择的提醒日期时间储存到数据库的MsgInfo表中。为保护用户的日志信息,MsgInfo表MsgInfoText字段的内容采用Unicode编码后储存,从数据库中读出时采用Unicode解码后显示。当点击“删除”按钮时,系统按照用户选择的日志信息的编号MsgID来从数据库中删除该条日志信息。以下
38、为部分伪代码。/ Unicode编码,用于将用户输入的日志信息采用编码形式储存在数据库中设置字符串型encode存放编码后的字符串; 将字符串code按字节进行编码,并存放在数组中;try将数组中每一个字节型元素转换为字符串型;catch处理异常;返回encode;/ Unicode解码,用于将数据库内的日志信息正常显示在Datagridview中,与编码过程相反设置字符串型decode存放解码后的字符串;将要解码的字符串型code转换为字节型;try将code信息解码并转换为字符串型并存放在decode中;catch处理异常;返回decode;/ 删除日志按钮事件的伪代码,其他按钮事件与此类
39、似。if (当前日志ID为空)MessageBox.Show(请先选择您要删除的日志!);else连接数据库,根据MsgID删除日志信息;if (删除成功)MessageBox.Show(日志删除成功!);重新显示MsgInfo表内容;else MessageBox.Show(您的操作有错误!);4.4.5 日志提醒模块功能说明:当系统时间到达当前登录用户设置的日志提醒时间时,从数据库的MsgInfo表中读取出当前登录用户的当前系统时间的日志信息,并显示在弹出的窗体中。当用户点击“删除”按钮时,系统从MsgInfo表中删除该条日志信息。以下为部分代码。/当点击“删除日志”按钮后的事件处理代码p
40、rivate void btnDeleteMsg_Click(object sender, EventArgs e)/设置数据库操作语句sqlstring sql = delete from MsgInfo Where MsgID= + msgid + and UserNumber=(select UserNumber from UserLogin where UserName= + userName + );/连接数据库并执行sql语句SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.SqlHelper.ConnectionStringLocal,
41、CommandType.Text, sql);this.Close();4.4.6 节假日设置模块功能说明:从数据库的JInfo表中读出当前设置的所有节假日信息并显示在Datagridview中。并根据用户需要进行节假日信息的添加和删除。图4-6 节假日模块界面当用户通过下拉列表框选择好日期,并输入节假日名称后点击“添加”按钮时,系统将日期和节假日名称储存到数据库的JInfo表中。当点击“删除”按钮时,系统按照用户选择的节假日信息的编号JID来从数据库中删除该条节假日信息。以下为部分代码。/ 点击“添加”按钮的事件处理private void btnAdd_Click(object sende
42、r, EventArgs e)/将combox内选择的日期分别储存在month和day整型变量中int month = int.Parse(this.cmbMonth.SelectedItem.ToString();int day = int.Parse(this.cmbDay.SelectedItem.ToString();if (this.txtJName.Text.Trim().Length = 2)/设置数据库添加记录sql语句string sql = insert into JInfo values( + this.txtJName.Text.Trim() + ,+month+,+d
43、ay+);/如果sql语句执行成功if (SqlConDao.SqlHelper.ExecuteNonQuery(SqlConDao.SqlHelper.ConnectionStringLocal, CommandType.Text, sql) 0)MessageBox.Show(节假日添加成功!);/重新显示数据库内的节假日信息GetJinfo();elseMessageBox.Show(您的操作有错误!);elseMessageBox.Show(节假日的输入格式不正确!请重新输入!);5 系统测试5.1 测试环境本系统测试环境;CPU:AMD 2500+ ,内存:DDR2 512M, SQ
44、L SERVER 2000,WIN2000/XP,2003下均测试通过.建议用户CPU PIII,内存256M及以上,数据库版本SQL SERVER 2000,WIN2000PRO/XP,2003,WIN2000 SERVER 及以上软硬件平台使用。该测试以程序的功能实现是否符合设计标准和程序是否存在重大BUG为标准。5.2 测试结果由于条件所限,本测试仅对该系统进行功能测试。经测试,系统在上述软硬件环境下,对各模块的功能均能测试通过,各逻辑流程均符合设计需要。以下为部分测试截图以及简要说明:图5-1 密码错误提示信息在登录模块中,随机输入几组用户名和密码进行测试。经测试,其处理流程与代码设计里的处理流程一致。当输入的用户密码与数据库内该用户的密码不一致时,提示用户的错误信息,如图5-1。当输入信息与数据库信息一致时才登录成功。一开始设计时忘记了密码在数据库中是采用MD5加密后储存的,