C#三层架构

2021-04-02 15:25

阅读:564

标签:bug   layer   EDA   ace   UI   连接数据库   http   bll   access   

C#三层架构

三层架构分为:表现层(UI(User Interface))、业务逻辑层(BLL(Business Logic Layer))、数据访问层(DAL(Data Access Layer))再加上实体类库(Model)   Model不属于三层架构

创建三层架构:

1.在解决方案中分别创建MySchool.DAL、MySchool.BLL、MySchool.UI、MySchool.Model的类库,并把类库中的class.cs文件删除

技术分享图片

 

2.在MySchool.Model层创建实体类,Grade类

技术分享图片

 

3.在MySchool.DAL层创建SQLHelper工具类连接SQLServer数据库

技术分享图片

更改命名空间,换成在Myschool.DAL 在MySchool.UI层中的App.config中创建连接数据库的字符串

技术分享图片

 

并在MySchool.DAL层中创建的GradeDAL,在创建的类中创建查询所有信息的方法,(引用=添加引用=引入MySchool.Model)

技术分享图片

技术分享图片

在MySchool.BLL层中创建GradeBLL类,在类中先new出MySchool.DAL层中的GradeDAL类,然后创建方法返回GradeDAL的方法 引用MySchool.DAL和MySchool.Model

技术分享图片

 

在MySchool.UI层,创建窗体应用程序,在窗体中拖入一个DataGridView,在form.cs中,创建GradeBLL的实例,用GradeBLL对象点出查询所有信息的方法,绑定到DataGridView里面 引入MySchool.DAL、MySchool.BLLMySchool.Model

技术分享图片

三层架构创建完成

为什么工具类连接数据库在DAL层中,连接数据库的连接字符串在UI层中,两个层中,也能连接到数据库?

因为项目初始化时会在UI层中的debug文件创建出关于DAL层中的类文件

如果DataGridView中需要两张表(多张表)的数据怎么办?

1.创建实体类,比如Subject,grade表

2.查看DataGridView中的列那张表的数据多一些,比如DataGridView中有  年级ID、年级名称、科目ID、科目名称、时长  

看出Subject中的数据比较多,所以创建一个扩展类SubjectExt,在SubjectExt实体类中创建Grade表中的属性,并且继承Subject实体类

技术分享图片

3.在DAL层创建查询方法。两表联查

技术分享图片

后面的方法与上面的方法一致

 

C#三层架构

标签:bug   layer   EDA   ace   UI   连接数据库   http   bll   access   

原文地址:https://www.cnblogs.com/luoxionghenku/p/9217234.html


评论


亲,登录后才可以留言!