应用开发-数据库通用类的设计(C#从入门到精通).ppt

上传人:牧羊曲112 文档编号:6571779 上传时间:2023-11-13 格式:PPT 页数:39 大小:246.16KB
返回 下载 相关 举报
应用开发-数据库通用类的设计(C#从入门到精通).ppt_第1页
第1页 / 共39页
应用开发-数据库通用类的设计(C#从入门到精通).ppt_第2页
第2页 / 共39页
应用开发-数据库通用类的设计(C#从入门到精通).ppt_第3页
第3页 / 共39页
应用开发-数据库通用类的设计(C#从入门到精通).ppt_第4页
第4页 / 共39页
应用开发-数据库通用类的设计(C#从入门到精通).ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《应用开发-数据库通用类的设计(C#从入门到精通).ppt》由会员分享,可在线阅读,更多相关《应用开发-数据库通用类的设计(C#从入门到精通).ppt(39页珍藏版)》请在三一办公上搜索。

1、第 15 章应用开发数据库通用类的设计,由于系统中对于数据库操作都需要处理连接字符串、创建连接、执行查询、更新等通用操作,为了提高代码的复用性,在软件开发时一般都创建数据库通用类完成数据库的通用操作。本章介绍了流行的三层体系架构的概念、利用LINQ to SQL自动创建数据库通用类的方法和利用数据库通用类操作数据库的简单例子。,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.1 系统分析,使用ADO.NET访问数据库时

2、,每次操作都要设置数据库连接connection属性、建立连接、使用SQLcommand和进行事务处理等,比较繁琐且有很多重复操作。项目开发中一般创建数据库通用类把这些繁琐的、常用的操作封装起来,以更方便、安全地使用ADO.NET。,15.1.1 三层体系结构,目前,流行的项目多采用三层体系结构。三层体系结构就是在表示层(界面层)与数数据访问层之间加入一个中间层,叫做业务逻辑层,一般将业务规则、数据访问、合法性校验等工作放到中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过中间层与数据库进行交互。,典型的三层结构包括表示层、业务逻辑层和数据访问层,使用三层结构创建的应用系统,由

3、于层与层之间的低耦合和层内部的高内聚,使得解决方案的维护变得更容易。表示层:主要是指与用户交互的界面,用于显示数据和接收用户的输入,将用户输入的数据传递给业务逻辑层,一般不包含任何实际的业务处理,当业务逻辑层的数据发生变化时,表示层就会显示出更新的结果。表示层是应用程序提供给用户的操作界面,通常是包含Windows窗体或Web页面的Windows窗体应用程序或Web应用程序。业务逻辑层:是表示层和数据访问层之间的桥梁,它代表应用程序的核心功能,负责处理数据层的数据,实现具体的业务逻辑。业务逻辑层通常为类库。,数据访问层:主要实现对数据的操作,将数据库中的数据提交给业务层,同时将业务层处理过的数

4、据保存到数据库中。数据访问层可以访问关系数据库、文本文件或者XML文件,数据访问层通常为类库。使用三层结构的目的是是使项目结构更清楚,分工更明确,有利于维护。三层架构就像员工、经理和董事长之间的关系一样,员工向经理汇报工作,经理汇总后再向董事长汇报,反之,董事长有什么命令传达给经理即可,再由经理通知每位员工。如果员工都直接找董事长,管理就会变得比较混乱。,三层架构搭建好之后,有一个问题需要解决,如何在三层之间传递数据呢?目前通用的解决方法有两种:一种是创建实体层使用实体层中的实体类在三层之间传递数据,另一种是使用数据集在三层之间传递数据。使用实体类的优点是实体类是一个比较容易控制的对象,它具有

5、面向对象的基本特征,可以自由的向实体类中添加行为等;实体类消除了关系数据和对象之间的差异,便于操纵关系数据;能更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。,15.1.2 系统分析,系统分析是开发应用系统的关键,通过系统分析了解客户需要什么样的程序,系统需要完成什么功能。通过软件需求规格说明书描述系统的总体要求,并且作为各方面沟通的依据,也为下一步工作提供基准。系统开发人员要按照软件需求规格说明书完成相应的功能。本节介绍的“数据库通用类”的设计来源于第24章的“人力资源管理系统”,重点介绍如何利用LINQ to SQL建立负责数据库操作的通用实体类。“人力资源管理系统”中的主要功能,

6、如员工管理、考评管理、员工调动管理、培训管理、奖惩管理等都需要操作数据库,每次操作需要设置连接属性、建立连接、使用SQLcommand、事务处理等,非常麻烦并有很多重复工作,所以创建一个通用类,以更方便、安全地操作数据库。,“人力资源管理系统”采用三层架构模型。利用LINQ to SQL创建数据库通用实体类实现在三个模块之间使用对象进行数据传递和负责操作数据库。利用.NET Framework 3.5中新增的LINQ可以简化三层体系架构的搭建,在以往的系统中,数据访问层要访问数据字段,业务逻辑层要得到数据都需要通过数据访问层来实现,通常创建数据库通用类来辅助数据访问层操作数据库,数据库通用类可

7、以看做单独的一层(数据模型层),LINQ可以自动生成数据模型层,产生一个dbml(Database Mark Language数据库描述语言)文件用来描述数据库信息,dbml文件是xml格式的文档,有了它可以快速生成实体类,实体类作为实体层负责对数据库操作。如下图的DataLinq层就是实体层和数据模型层的组合。利用LINQ创建的三层体系结构如下图所示。,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.2 数据库分析和设计,数据库设计是系统建设中非常重要的环节,合理有效的数据库设计对系统的性能至关重要,也是创建系统的基础。,1

8、5.2.1 数据库分析和设计,通过系统分析,“人力资源管理系统”数据库中包含如下多个表。在SQL Server 2008 或者SQL Server 2005中创建数据库HrManage和系统中用到的表。表和表结构如下。1.考勤表(Attendance),用于存放员工考勤的信息。,2.奖惩表(RewardsInfo),用于记录员工的考奖惩信息。,3.员工培训表(TrainInfo):记录员工的培训信息。,4.员工调动表(EmpTransfer),用于记录员工的调动信息。,5.员工信息表(EmployInfo),6.职位表(PostInfo),7.部门表(Section),8.工资变动表(Tran

9、sferWage),15.2.2 数据库通用类的创建,本节利用LINQ to SQL创建一个DataLinq层来组织数据库通用类,DataLinq层包含一个DataContext类和若干实体类,其结构如下:,DataContext类:项目中的每一个 LINQ to SQL设计器将自动创建一个 DataContext类,用来查询数据库、检索数据记录和更新数据库操作的主要类,它包含了每一个表的属性。实体类:LINQ to SQL为添加到设计器(.dbml文件)中的每一个表创建对应的实体类,这些实体类包含了强类型属性集合,映射到数据库中对应表的字段。LINQ to SQL使用这些实体类来生成数据操作

10、的SQL脚本,同时,也可以创建实体类的实例,给实例赋值,然后在不同的层之间作为数据传输对象进行传递。,DataContext类中的实体类和属性直接映射到对应数据表和字段。缺省情况下,在DataContext类中,LINQ 使用继承抽象类 MappingSource 的 AttributedMappingSource 类来存放表和字段的映射信息,从数据库中检索记录和提交数据更新到数据库时需要这些映射信息。,利用Visual Studio 2008创建数据库通用类的步骤如下。,启动Visual Studio 2008,新建一个“类库”项目,名称为“DataLinq”。单击菜单【项目】【添加类】,选

11、择【Linq to SQL类】,输入类的名称“HrDataLinq”。单击【添加】按钮后,系统将增加HrDataLinq类到项目中,并自动创建一个空白的设计器(.dbml文件),同时附有【服务器资源管理器】的链接,也创建相关的dbml.layout文件(XML文件)和designer.cs文件(DataContext类文件)。打开【服务器资源管理器】,并建立到HrManage数据库的链接,然后导航到HrManage数据库,将数据库中的表拖放到设计器。最后,保存文件后就自动生成了包含相关的属性、方法的DataContext类和实体类。,单击【生成】-【生成解决方案】,数据库通用类和实体类就可以使

12、用了。自动生成的数据库通用类DataContext(类名是HrDataLinqDataContext)类图如下:,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.3 系统设计,自动生成的数据库通用类DataContext中的实体类和属性直接映射到对应数据表和字段。缺省情况下,在DataContext类中,LINQ 使用继承抽象类 MappingSource 的 AttributedMappingSource 类来存放表和字段的映射信息,从数据库中检索记录和提交数据更新到数据库时需要这些映射信息。部分代码如下(代码15-1.tx

13、t)。,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.4 运行系统,为了使用数据库通用类,下面我们开发一个查询职位信息的三层结构的例子。系统体系结构设计如下:1.DataLinq层DataLinq层是15.3节中设计的数据库通用类。2.添加数据访问层在解决方案中添加类库项目HrDAL,添加对DataLinq层的引用,编写代码如下:3.创建业务逻辑层在解决方案中添加类库项目HrBLL,添加对DataLinq层和HrDAL层的引用,编写代码如下:,4.添加表示层,创建Windows窗体应用程序,项目名为“HrManage”,在F

14、orm显示PostInfo表中的记录,窗体上放置一个Label和DataGridView控件;分别添加对DataLinq层和HrBLL层的引用,界面如下:编写代码如下(代码15-4.txt)。将Windows窗体应用程序设置为启动项目后运行,运行界面如下。,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.5 在我的Windows窗体应用程序中应用本系统,15.2节中创建的数据库通用类将用在整个“人力资源管理系统”项目中,作为DataLinq层,负责操作数据库,从本章的介绍可以看到利用Linq to SQL创建一个DataCon

15、text类,不需要设置connection属性、建立connection,也不需要使用SQL语句就能操作数据库,非常简单和方便,极大的提高了开发效率,降低了开发难度。,系统分析 数据库分析和设计 系统设计 运行系统 在我的WinForm应用中应用本系统 开发过程常见问题及解决,15.6 开发过程常见问题及解决,开发过程中经常出现的问题和解决方案如下.1.出现“error:40-无法打开到SQL Server的连接”错误。,解决方法如下:可能是连接字符串有错。如是Windows窗体应用程序在app.config或settings.settings改正为正确的代码,注意连接字符串中Data Sou

16、rce后面是服务器的名称,一般写成“计算机名数据库实例名”格式,也可以写成“.”,.代表当前服务器,或写成local,或写成“127.0.0.1”等。如是Web应用程序,在web.config中更改连接字符串。如:connectionString=Data Source=CSSQLEXPRESS;Initial Catalog=HrManage;Integrated Security=True,如字符串正确,可能是没有启用数据库的远程连接。启动远程连接:打开 SQL Server 2008 或2005的外围应用配置器,单击 开始-所有程序-Ms SQL Server-配置工具-SQL Server外围应用配置器-服务和连接的外围应用配置器-打开MSSQLSERVER节点下的Database Engine 节点,先择远程连接,接下建议选择同时使用TCP/IP和named pipes,确定后,重启数据库服务就可以了。2.出现找不到类型和命名空间名称的错误。如图所示:,解决方法:在程序的开始添加命名空间的引用,using System.Data.Linq;3.缺少对程序集的引用,如:解决方法,添加对程序集的引用。在相应的项目下的引用上单击鼠标右键,添加引用即可。,ByeBye,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号