APP下载

基于LINQ语言的学生信息管理系统三层体系结构设计

2012-11-13段班祥

科技视界 2012年32期
关键词:表示层信息管理系统代码

段班祥

(广东科学技术职业学院计算机工程技术学院 广东 珠海 519090)

0 引言

长期以来,开发社区形成以下格局:面向对象与数据访问两个领域长期分裂,各自为政,编程语言中的数据类型与数据库中的数据类型形成两套体系。LINQ(Language Integrated Query)即语言集成查询,是一组语言特性和API,使得你可以使用统一的方式编写各种查询。查询的对象包括XML、对象集合、SQL Server数据库等等。LINQ主要包含以下三部分:LINQ to Objects、LINQ to XML、LINQ to ADO.NET。而 LINQ to ADO.NET 主要包含:LINQ to SQL、LINQ to DataSet、LINQ to Entities。

三层结构主要分为:表示层、业务逻辑层和数据访问层。表示层主要功能是为用户提供一种交互式操作界面;业务逻辑层是表示层与数据访问层之间的桥梁,负责关键业务的处理和数据传递;数据访问层实现对数据的保存和读取操作。其主要优点是当数据库或用户界面发生改变时不需要重新开发,只做简单调整即可。

1 系统概述需求

下面我们具体使用LINQ和三层结构实现学生信息管理系统,本系统开发工具使用Visual Studio 2010,开发语言使用C#,开发数据库使用SQL Server 2008,系统开发的总体任务是实现信息关系的系统化、规范化和自动化。系统的结构关系如图1所示:

系统的结构关系图是系统的总体功能分析,是在系统开发的总体任务的基础上完成的。本项目中的学生信息系统需要完成的功能主要有:有关学籍等信息的输入,包括学生基本信息、所在班级、所学课程和成绩等;学生信息的查询,包括学生基本信息、所在班级、已学课程、所有成绩和奖罚信息等;学生信息(包括奖罚信息)修改;班级管理信息的输入,包括班级设置、年级信息和班级辅导员等;班级管理信息的查询;班级管理信息的修改;学校基本课程信息的输入;基本课程信息的修改;学生课程的设置和修改;学生成绩信息的输入;学生成绩信息的修改;学生成绩信息的查询;学生成绩的报表打印;用户登录信息的添加、修改和删除等;用户登录的密码修改;数据库文件的备份。

图1 系统结构关系图

2 LINQ和三层结构在学生信息管理系统中的应用

下面我们以“查询所有学生的成绩”模块为例,说明如何具体使用LINQ和三层结构进行设计。LINQ提供了LINQ to DATASETS、LINQ to ENTITIES、LINQ to SQL等组件访问数据源,且允许做所有与数据库相关的操作。在学生信息管理系统中,主要使用LINQ to SQL组件访问数据库,但是其他各组件访问数据源方法与其类似,可将其作为参考。

2.1 创建数据源MySchool.dbml

在数据访问层把LINQ to SQL类增加到项目中,自动创建一个空白的设计器,与此同时,创建相关的dbml.layout文件和 designer.cs文件,并附有服务器资源管理器的链接。打开服务器资源管理器,建立与MySchool数据库的链接,将所需要的表直接拖放到MySchool.dbml文件的视图面板中,该文件的类与MySchool数据库表相对应,最后保存dbml文件,此时,dbml文件里已经自动生成了包含相关的属性、方法的DataContext类和实体类MySchool.dbml文件。

2.2 查询所有学生的成绩功能的三层结构设计

2.2.1 数据访问层ResultService设计

查询学生成绩涉及到学生信息表Student、成绩表Result、科目表Subject等三个表,我们使用LINQ查询语句中的join子句进行联接,同时利用左外联接上一联接的查询结果上再进行一次查询,具体语法如下:

2.2.2 业务逻辑层ResultManager和表示层的设计查询学生成绩功能业务逻辑相对比较简单,具体代码如下:

表示层窗体FrmSearchStu.cs中添加一个命令按钮btnSearch、一个DataGridView控件dgvResult,编写命令按钮 “查询所有学生的成绩”单击事件,实现查询所有学生的成绩。

学生信息管理系统其他功能模块访问数据库所使用的全部实体类代码使用Visual Studio 2010集成开发工具的LINQto SQL设计器自动生成,仅此一项就可以节省许多复杂代码的编写工作;LINQ把对数据库的操作转化为对实体类的操作,使编程思路和程序逻辑更加明确;同时,代码中LINQ to OBJECT的使用也节约了大量的代码编写工作。由于数据访问层代码全部采用LINQ来实现,所以在编写这些代码时可以获得编译时的类型检查和IntelliSense支持,提高了编程效率,大大节省了开发时间和成本。

另外,在软件开发过程中,我们使用了三层结构,当数据库或用户界面发生改变时不需要重新开发,只做简单调整即可,从而大大提高应对客户变化的能力以及自身的生产力。

3 结束语

本文通过学生信息管理系统,分析了LINQ及LINQ TO SQL的概念和基本架构,对其核心技术和新特性进行了详细的描述。结合三层结构,详细介绍了LINQ数据库访问的基本方法,如查询、修改、插入、删除等操作。LINQ to SQL还全面支持事务、视图、存储过程,并且提供简单的方式来集成数据验证和业务逻辑规则。这些强大的功能和特性还有待在实际开发过程中继续研究和应用。

[1]微软公司.ADO.NET 3.5数据访问程序开发[M].北京:人民邮电出版社,2010.

[2]宋智军,邱仲潘.Visual C#2010 从入门到精通[M].北京:电子工业出版社,2011.

[3]牟永敏,丁媛,朱绪利,李良杰.基于LINQ技术的在线考试系统[J].北京信息科技大学学报,2011,26(2):19-24.

[4]涂曙光.LINQ 和LINQ 的未来[J].Technical News,2009,2:17.

猜你喜欢

表示层信息管理系统代码
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
基于三维TGIS的高速公路综合信息管理系统
创世代码
创世代码
创世代码
创世代码
ASP.NET三层构架解析
基于SSH框架科研管理系统的设计