《毕业设计(论文)ASP.NET科研管理系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)ASP.NET科研管理系统设计.doc(37页珍藏版)》请在三一办公上搜索。
1、摘 要本系统采用B/S(Browser/Server)结构,ASP.NET为开发语言,SQL Server 2005为数据库来进行设计与开发。该系统主的功能是帮助人们管理学校人文科研项目等。基本功能包括登录、项目展示、成果展示、人员展示、科研分查询等。本论文,简要阐述了此次毕业设计题目“科研管理系统”的开发背景与开发环境,且对系统的构架进行分析,并由此划分出各个模块,有基础管理模块、人员管理模块、部门管理模块、项目管理模块、成果管理模块、科研分管理模块。详细介绍了系统各个模块与功能的实现原理,本文详细介绍了网上系统的需求分析、功能设计和系统设计等,并通过流程图和文字加以解释说明。在系统设计中给
2、出数据库的设计和本系统的总体设计方案,在系统实现中具体介绍了各个功能的所能实现的情况和主要代码,同时附有运行界面图,最后总结开发阶段与测试阶段所遇到的问题与解决方法。关键词:ASP.NET、SQL Server2005、三层结构、Ajax技术、角色、安全目 录第一章 系统开发理论依据11.1 ASP.NET概述11.1.1 ASP.NET基本含义和特点11.1.2 ASP.NET的优点11.2 SQL介绍21.3 B/S结构介绍21.4三层架构3第二章 需求分析和系统功能设计52.1系统项目依据及目标52.2系统功能模型的建立6第三章 系统规划和概要设计83.1 系统功能模块83.2 方法概要
3、103.3系统流程图103.3.1系统的逻辑体系结构103.3.2系统流程图113.4系统解决方案项目构成13第四章 数据库层的设计与实现154.1 数据库概念结构设计154.2数据库表结构设计154.3 存储过程设计184.4 数据库安全设计20第五章 业务逻辑层设计与实现225.1 实体类设计225.2数据访问层设计235.3业务逻辑层设计24第六章 界面表示层设计266.1学术期刊的增、删、改、查、设计26第七章 系统测试,维护以及安全307.1系统测试307.1.2 系统运行307.2系统维护307.3系统安全30第八章 系统总结33参考文献36第一章 系统开发理论依据1.1 ASP.
4、NET概述 1.1.1 ASP.NET基本含义和特点 ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点
5、: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; (3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX组建来执行各种各样的任务,例如存取数据库、发现那个Email或
6、访问文件系统等。 (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取。ASP.NET不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.net提供许多比现在的Web开发模式强大的优势。1.1.2 ASP.NET的优点 ASP.NET的主要优点大概可以归纳如下: (1)ASP.NET是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编
7、译,这样的执行效果,当然比一条一条的解释强很多。(2)ASP.NET构架是可以用Microsoft(R)公司最新的产品 Visual S开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的一小部分。(3)因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows 2000 Server上)。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.
8、net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C+和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#。(4)ASP是运行在服务器端,所以无须担心浏览器是否支持A
9、SP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 (5)Active Server Pages的程序代码隐藏,在客户端上仅可以看到由ASP输出的动态HTML文件。因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。(6)可使用服务器端的脚本来产生客户端的脚本。 (7)面向对象(Object oriented),并可扩展ActiveX Server组件功能。 (8)ActiveX
10、Server Components(ActiveX服务器组件)具有无限可扩充性。可以使用任何编程语言来编写所需要的ActiveX Server 组件。 (9)可以通过ADO(ActiveX Data Objects,微软的一种新的数据访问模型,是一种可以提供WEB页面开发者轻松存取Inter的数据库,并可以在用户端实现网上立即、即时更新显示的最新WEB页面数据库技术。)非常方便地访问数据库,从而使存取数据库变得轻松容易。 1.2 SQL介绍 SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照A
11、NSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。1.3 B/S结构介绍 B/S(Browser/Server)结构即浏览
12、器和服务器结构。它是随着Inter技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。 以目前的技术看,局域网建立B/S结构的网络应用,并通过Inter/Intra模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员, 从不同的地点,以不同的接入方式(比如LAN, WAN, Inter/In
13、tra等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。1.4三层架构随着软件工程的不断进步和规范以及面向对象编程思想的应用,人们对封装、复用、扩展、移置等方面的要求,使得双层架构显然更加臃肿繁琐,三层程序架构体系应运而生,可以说,三层架构体系结构是面向对象思想发展中的必然产物。所谓三层架构,是在客户/服务之间加入了一个中间层,也叫组件层。它与客户层、服务器层共同构成了三层体系。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,三层是指逻辑上的三层。通过引入中间层,将复杂的商业逻辑从传统的
14、双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器,同时增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用。三层体系架构具体包括:表示层、业务逻辑层、数据访问层。(1) 表示层:即用户接口层,是由ASP.NET技术的Web窗体和Web用户控件组合起来构成的。表示层运行在客户端浏览器上,产生用户视图。在业务逻辑层发生变化时通过改变表示层的组合以及做一些简单的调整就可以很好地适应新的业务逻辑层。(2) 业务逻辑层:
15、这一层是从整个系统功能设计中抽取大量具有共性的模块,把它们统一设计成为系统公共的可重用的组件。由COM+组件服务管理器统一配置管理组件。(3) 数据访问层:用来管理和存储数据,实现数据访问功能,设计数据库,定义数据表结构、表的索引、数据表之间的关联,定义数据库中的视图以及操作数据的存储过程,设计数据库的安全等等。该层由数据库管理系统如SQL Server来管理和控制。第二章 需求分析和系统功能设计信息系统的开发不仅仅是一个应用程序的编写过程,最重要的是在系统分析和系统设计的阶段所做的的工作,科研管理系统是基于Microsoft Visual Studio 2008系统开发的Web应用程序,它针
16、对有关目标设计系统开发背景,运行环境等进行分析,通过数据库需求分析、系统功能模块设计等实现系统及功能模块。科研水平逐渐成为衡量一个高校的重要指标,高校作为重要的科研机构,如何对学校大量的科研信息进行高效、安全的保存、处理、统计、加工等管理操作,将日常的科研管理工作更加规范化、科学化,建立高校科研管理系统进行科研管理工作是每一个高校必由之路。高校科研管理系统数据库设计是高校科研管理系统设计中的一项核心工作,所有的管理工作都必须以数据库为中心,进而建立高校科研管理系统。2.1系统项目依据及目标科研管理系统是以科研项目流程为核心,全方位通过计算机来管理科研项目申报、项目开题、项目合同、实施进度、项目
17、结题、科研成果、项目经费、分类汇总分析和科研分计算等科研活动,以达到方便、高效地管理和控制,提高管理效能。该系统既满足学院领导和科研决策者对科研活动的宏观管理与决策的需要,满足科研管理部门对教师科研分的统计、汇总和查询,也满足各系部单位或本人对科研项目的查询和管理工作,同时也便于和教育厅的科研管理系统的数据进行对接。系统项目内容:1. 实现对科研日常事务的管理:科研项目、科研成果、完成情况等信息管理。2. 实现对科研信息的查询、教师科研分的查询。3. 提供全方位的科研管理服务,为学校各项科研管理业务提供信息化支持。4. 辅助科研负责人或科研管理者管理相应的科研工作,及时掌握、了解学院教师的科研
18、情况,方便且高效地完成科研管理工作。系统目标及要解决的问题:系统能及时为学校提供科研信息,辅助管理人员制定科研计划;分析科研计划及合同完成情况,实现对科研任务、科研计划、合同执行的管理和控制;完成科研工作量的计算、统计、审核;构建系统的安全解决方案,确保系统的安全性和保密性;实现对科研工作人员的管理及登录系统时的权限分配。该系统需要解决的功能包括项目申报、成果管理、经费管理、综合查询、科研分管理、角色管理、部门及人员管理、数据安全性、数据导入导出等。1. 项目管理功能项目申报查询:用于按时间段、申报单位、项目名称、项目编号等条件下进行项目申报信息的总体信息查询;项目申报编辑:用于对个人申报的信
19、息进行增、删、改等编辑操作;项目日常管理:用于对项目进程过程中日常信息的编辑管理工作。2. 成果管理功能 提供科研成果信息的输入,编辑,查询等功能。3. 经费管理功能 提供科研经费信息的输入,编辑,查询等功能。4. 部门及人员管理功能 部门管理:设置相关部门名称;人员管理:查询或设置科研人员的基础资料。5. 科研分管理功能 科研分的审核、统计、查询和报表等功能。6. 角色管理功能角色分配:建立系统操作中各类人员角色信息,用于进行权限控制,系统中角色分为四个层次:校管理级别、系部等二级部门级别、普通教师级别和系统维护级别。7. 综合查询功能 用于查询本级及本级以下角色用户的项目信息。2.2系统功
20、能模型的建立通过 对安徽财贸职业学院科研管理的需求调研、分析,将科研管理系统分为科研项目管理、科研成果管理、学校机构管理、部门人员管理、科研信息查询、基础数据维护、权限管理等几个主要的模块,使用该系统的人员可以分为系统维护员、系管理员、校管理员、一般教师等几种角色。(1) 系统维护员:整个系统的管理者,具有最大的权限功能,主要完成用户角色信息的管理、部门信息的管理、系统基础数据的维护等。(2) 系管理员:(3 ) 校管理员:(4 ) 一般教师:不同的角色完成不同的功能。系统功能模型如图所示一般教师科研项目、成果申报、科研信息查询、个人项目、成果维护、个人信息维护系管理员校管理员系统维护员管理和
21、维护整个系统本部门科研项目、成果、科研分管理、部门人员管理全校科研项目、成果、科研分管理、全校人员管理科研管理系统第三章 系统规划和概要设计3.1 系统功能模块学校科研管理系统的主要任务是用计算机对各种科研信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种科研信息的统计计算和汇总工作,快速打印出科研信息报表,针对系统服务对象的具体要求,设计了学校科研管理系统。系统主要包括基础管理、部门管理、人员管理、项目管理、成果管理、科研分管理六大模块。各模块之间并非各个独立,而是相互联系,相互关联在一起的,从而使本系统能够很好的完成所设计的功能。系统有四种不同角色:普通教员、系管理
22、员、校管理员。不同角色可做不同的操作。该系统功能模块及其子模块如图3-1:人员管理部门管理成果管理学校信息学术期刊信息学科建设信息个人信息特殊人才信息科研管理部门信息人员信息教研室信息项目信息基础管理系部信息科研管理系统项目管理科研分管理项目经费信息项目工作量信息成果信息成果经费信息成果获奖信息科研分详细信息年度科研总分信息年度科研分详细汇总研究机构信息图3-1 功能模块图1.普通教员登录:可以浏览、查看基础管理中的所有信息、可以编辑个人信息,可以浏览、查看所在系信息和系中所有教研室信息,可以浏览、查看、编辑本人的项目、项目工作量信息,申报项目、项目经费,浏览查看本人成果、成果获奖信息,申报成
23、果、成果经费,科研分根据项目和成果自动添加,可以查看、编辑本人的科研分。2.系管理员登录:可以浏览、查看基础管理中的所有信息、可以编辑个人信息,可以浏览、查看所在系信息和系中所有教研室信息,可以新增、编辑教研室,可以浏览、查看、编辑系内的项目、项目工作量信息,申报项目、项目经费,浏览查看系内成果、成果获奖信息,申报成果、成果经费,科研分根据项目和成果自动添加,可以查看、编辑本系的科研分。3校管理员登录:可以浏览、查看基础管理中的所有信息、可以新增和编辑,可以编辑个人信息,可以浏览、查看所有系信息和系中所有教研室信息以及研究机构,可以新增、编辑系部、研究机构和教研室,可以浏览、查看、编辑校内所有
24、项目、项目工作量信息,申报项目、项目经费以及审核申报的项目,浏览查看校内所有成果、成果获奖信息,申报成果、成果经费以及审核申报的成果,科研分根据项目和成果自动添加。,可以查看、编辑本校的科研分。3.2 方法概要科研管理系统是采用面向对象的程序设计思想进行编制的。用户可以通过主菜单调用系统的各项功能。(1)面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。(2)所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、
25、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过方法调用相互通信。(3)类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。3.3系统流程图3.3.1系统的逻辑体系结构本系统采用当前流行的B/S设计模式,基于Windows.NET平台构
26、建Web应用程序,把系统划分为数据层、业务逻辑层和表示层。逻辑体系结构如图3-2所示:图3-2 系统逻辑体系结构图表示层业务逻辑组件层数据层SQL Server3.3.2系统流程图本系统分为三个角色:教员、系管理员、校管理员,每个角色具有自己不同的权限。下面会通过流程图一一做出分析介绍。(1) 教师角色:教师登录系统后可以操作属于自己的信息,可以浏览查看学校的公共信息。可以申报自己的项目和成果、项目经费和成果经费、浏览查看自己的项目和成果信息、浏览查看自己的科研分情况等权限。(2) 系管理员角色:系管理员也可以操作自己的信息和浏览学校的公共信息。此外系管理员还可以浏览本系的所有教研室及教研室人
27、员,编辑、新增、删除教研室人员。浏览和编辑本系的所有项目和成果信息。浏览戏中科研分信息等。(3) 校管理员角色:校管理员亦可以操作自己的信息。可以浏览、编辑、新增、删除学校的公共信息。审核申报的项目和成果,浏览和编辑项目和成果信息、项目经费和成果经费、科研分等信息。流程图如图3-3和图3-4:用户登录校管理员普通教员系管理员基础管理查看学校信息查看科研管理部门查看学科建设查看学术期刊查看特殊人才查看个人信息编辑学校信息编辑个人信息编辑特殊人才编辑学术期刊编辑学科建设编辑科研管理部门人员管理查看教员编辑教员查看教研室编辑教研室查看系部编辑系部查看研究机构编辑研究机构部门管理图3-3 系统流程图校
28、管理员系管理员普通教员用户登录项目管理查看项目信息编辑项目信息查看项目工作日编辑项目工作日编辑项目经费查看项目经费成果管理查看成果信息编辑成果信息查看成果获奖编辑成果获奖编辑成果经费查看成果经费科研分管理查看详细科研分信息编辑详细科研分信息查看年度科研分信息编辑年度科研分信息编辑年度详细科研分汇总查看年度详细科研分汇总图3-4 系统流程图3.4系统解决方案项目构成为了用B/S设计模式的三层体系结构实现本电子商务系统的设计,本人用Visual Studio.NET 2008简体中文企业版设计了一个名为“kyglSystem”的科研管理系统解决方案,用VC#语言在该解决方案中建立了四个项目,如图3
29、-5所示,这四个项目的有机结合,构成了本科研管理系统。这四个项目分别和B/S设计模式的三层体系结,如图4-4。图3-5 解决方案这四个项目分别为:Web表示层、BLL业务逻辑类、DAL数据访问类、Model实体类。各层之间互相的引用联系是:首先要将实体类(Model)命名空间在其它各层全部引用,表示层(Web)命名空间中再引用业务逻辑类(BLL),业务逻辑类(BLL)再引用数据访问类(DAL)。第四章 数据库层的设计与实现4.1 数据库概念结构设计(1)局部E-R图,下图为人员信息的E-R图(图4-1)。学术期刊ISBN号CN号页数开本出版单位主编网址编号主管单位名称图4-1 学术期刊E-R图
30、(2)集成E-R图,下图为人员信息表的部分关联信息,如图4-2。学术期刊编号名称CN号开本页数单位主管单位单位编号单位名称期刊等级期刊等级等级名称编号图4-2 学术期刊集成E-R图4.2数据库表结构设计数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分。下面就详细介绍数据库的设计。主管单位表:Charge_Unit_CodeChage_unit_code(主管单位表):用来存储主管单位的详细信息,主键为主管单位编号Id,其为标识列,主管单位名称charge_unit_name。表各字段设计如表4-1序号列名数据类型长度小数位标识主键允许
31、空默认值说明1idint40是是否2charge_unit_namenvarchar300否表4-1可以看出,主管单位表里主管单位名称不可以为空,因为员工编号是主键,主键不可以为空。学术期刊表:MagazineMagazine(学术期刊表):用来存储学术期刊信息,主键期刊编号Id,其同时也为标识列,还有期刊名称、主办单位、期刊等级、学科类型Id(为了查询方便才设置此列)、学科名称、发行单位、创刊日期、发行方式、发行周期、页数、开本、主编、联系电话、联系地址、电子邮箱、网址、CN号、ISBN号、CN和ISBN号。表各字段设计如表4-2序号列名数据类型长度小数位标识主键允许空默认值说明1idint
32、40是是否2magazine_namenvarchar300否3publishUnitnvarchar300是4magazine_gradeint40是5subject_idint40是6subjectNamenvarchar300是7chargerUnitnvarchar300是8createDatedatetime83是9publishFormnvarchar300是10publishCircleint40是11paperSizenvarchar300是12pageNumint40是13magazine_chargenvarchar300是14telnvarchar300是15addres
33、snvarchar300是16emailnvarchar300是17CN_codenvarchar300是18ISBN_codenvarchar300是19web_sitenvarchar500是20codenvarchar500是表5-2在学术期刊表中期刊编号和期刊名称都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。主管单位表:main_manage_unitmain_manage_unit(主管单位表):用来存储主管单位的详细信息,主键主管单位编号Id,其同时也为标识列,还有主管单位名称、负责人姓名、联系电话、练习地址、电子邮箱、学校。其表各字段设计如表:4-3序号
34、列名数据类型长度小数位标识主键允许空默认值说明1idint40是是否2unit_namenvarchar300否3charger_namenvarchar300是4telnvarchar300是5addressnvarchar300是6emailnvarchar300是7univ_idnvarchar300是表4-3期刊等级表:Magazine_grade_CodeMagazine_grade_Code(期刊等级表):用来存储期刊等级的详细信息,主键为期刊等级编号Id,其同时也为标识列,另外还有期刊等级名称。其表各字段设计如表:4-4序号列名数据类型长度小数位标识主键允许空默认值说明1idin
35、t40是是否2magazine_grade_namenvarchar300否表4-4由于本系统数据库涉及的表太多,只列举四个,其他表与这些表类似,在此不一一列举。其中学术期刊涉及到的表有:期刊等级表、出版周期表、学科分类表、主管单位表。学校信息表涉及到的表有:主管单位表。科研管理部门表涉及到的表有:学校信息表。特殊人才表涉及到的表有:特殊人才类型表、学校信息表。学科建设表涉及到的表有:学科表、年度表。然后根据表的结构依次建立主外键的关系。4.3 存储过程设计数据库中的存储过程对应高级语言中的子程序,存储过程的内容是SQL语句,与高级语言的子程序一样,存储过程也有输入输出形参。存储过程在服务器运
36、行,存储过程执行一次后,就被编译为二进制代码且驻留在高速缓冲存储器中,在以后的操作中,只需从高速缓冲中调用已编译好的二进制代码,提高了系统性能。在我所做的功能中涉及到了五十多个存储过程(如图4-3),这些存储过程主要是对实体的增删改查。图4-3 存储过程下面举例说明其他几个重要的存储过程:(1)增加学术期刊的存储过程:这个存储过程是将Magazne表里面的所有字段作为参数,通过前台的添加数据,将记录添加到数据库中。set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-项目名称:科研管理系统-说明:-时间:-10-26 10:37:57ALTER PROCEDU
37、RE dbo.UP_Magazine_ADDId int output,magazine_name nvarchar(30),publishUnit nvarchar(30),magazine_grade int,/ AS INSERT INTO Magazine(magazine_name,publishUnit,magazine_grade,subject_id,subjectName)VALUES(magazine_name,publishUnit,magazine_grade,subject_id,subjectName(2)显示所有学术期刊的记录:这个存储过程主要是提取Magazin
38、e表里面的所有记录。存储过程主要代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-用途:查询记录信息-项目名称:科研管理系统ALTER PROCEDURE dbo.UP_Magazine_GetList AS SELECT id,magazine_name,publishUnit,magazine_grade,subject_id,subjectName,chargerUnit,createDate,publishForm,publishCircle,paperSize,pageNum,magazine_charge,tel,address,em
39、ail,CN_code,ISBN_code,web_site,code FROM Magazineset ANSI_NULLS ONset QUOTED_IDENTIFIER ON(3)修改数据库里面的学术期刊的信息:这个存储过程是根据Magazine里面的Id字段查找到该条记录,然后再做修改,存储过程代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-用途:修改一条记录-项目名称:科研管理系统ALTER PROCEDURE dbo.UP_Magazine_Updateid int,magazine_name nvarchar(30),publis
40、hUnit nvarchar(30),/AS UPDATE Magazine SET magazine_name = magazine_name,publishUnit = publishUnit WHERE id=id /set ANSI_NULLS ONset QUOTED_IDENTIFIER ON(5)编码表Magazine_gradeCode表中的存储过程:根据Id查询符合条件的记录,代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-用途:得到实体对象的详细信息-项目名称:科研管理系统ALTER PROCEDURE dbo.UP_Mag
41、azine_grade_code_GetModelid int AS SELECT id,Magazine_grade_name FROM Magazine_grade_code WHERE id=id 获得所有信息的记录,代码如下:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-用途:查询记录信息-项目名称:科研管理系统ALTER PROCEDURE dbo.UP_Magazine_grade_code_GetList AS SELECT id,Magazine_grade_name FROM Magazine_grade_codeset ANSI_N
42、ULLS ONset QUOTED_IDENTIFIER ON由于本系统涉及的存储过程太多,其他存储过程均与以上相似,在此不一一列举。4.4 数据库安全设计在本系统中,数据库的安全主要通过数据库的存取控制机制实现的。首先定义各类管理人员的操作权限即角色,然后依据用户表将登录分配为相应的角色。由于人员的复杂性,角色分系统维护员、系管理员、校管理员、一般教师等几种角色。在用户登录时,提取出用户的角色,不同的角色进入系统后,主页中的菜单是不同的,从而保证每种角色的用户,只能看到的操作到自己权限范围内的数据,其他的数据根本看不到,从而基于角色,实现数据的存取控制的安全性。主外键约束的关系图:项目所涉及
43、的各表间关系图:第五章 业务逻辑层设计与实现5.1 实体类设计实体类层,即使公用参数层,它为其他各层提供公用的参数,可减少代码的编写量提供系统效率。每一张表都对应了一个实体类,故实体类层共包括了:主管单位类、学术期刊类、期刊等级类、主管单位类、主管单位人员类、特殊人才类、特殊人才类型类、发行周期类、学校信息类、学科建设类、学科类、年度类。如实体类(Magazine)学术期刊信息类:using System;namespace kygl.Model/ / 学术期刊类Magazine / Serializablepublic class Magazine public Magazine() #region Model private int _id; private string _magazine_name; private string _publishunit; / private string _code; / / 期刊编号 / public int Id set _id = value; get return _id; /