教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

C#三层架构 简单实例分析(3)

来源:网络收集 时间:2026-08-20
导读: 3-3-3 界面层的设计 界面层的设计,部署恰当控件后,把功能实现代码放在恰当控件的恰当事件中。课程删除时,界面上主要的功能如下: 1、 按下删除按钮,实现课程记录的删除 (1)代码放在按钮的CLICK事件中; (2)

3-3-3 界面层的设计

界面层的设计,部署恰当控件后,把功能实现代码放在恰当控件的恰当事件中。课程删除时,界面上主要的功能如下:

1、 按下删除按钮,实现课程记录的删除 (1)代码放在按钮的CLICK事件中;

(2)代码设计思路:首先进行控件的输入正确性验证;将控件的值放在某变量中;利用此变量作为实参,调用业务逻辑类对象的DelCourse()方法,删除记录;最后刷新浏览。

? 任务的设计思路

1、在DAL项目中CourseAccess类,添加删除课程的方法。 2、在BLL项目中CourseBiz类,添加课程删除相关方法。 3、优化界面层代码,调用业务逻辑层类的方法,实现删除。 ? 任务的实施

1、在CourseAccess类中,添加如下方法: 删除课程,注意形参是课程号

///

/// 根据课程号删除课程 ///

///

public int DelCourse(string courseId) {

string strSql = string.Format(\courseId='{0}'\, courseId);

return DBHelper.ExecNonQuery(strSql); }

2、在CourseBiz类中,添加如下方法:

///

/// 判断逻辑,删|除课程 //

///

public void DelCourse(string courseId) {

if (!courseAccess.Exist(courseId)) {

MessageBox.Show(\此课程号不存在,请重新输入\); return; }

if (courseAccess.DelCourse(courseId) > 0) MessageBox.Show(\添加成功\); else

MessageBox.Show(\添加失败\); }

3、界面层重构的代码如下:

private void buttonDel_Click(object sender, EventArgs e)

{

if (textBox4.Text == String.Empty) {

MessageBox.Show(\请输入课程编号\); return; }

string courId = textBox4.Text.Trim(); CourseBiz cb= new CourseBiz(); cb.DelCourse(courId); }

此时运行系统,记录删除的部分就是由这3层实现的,界面层按下“删除”按钮后,调用BLL层的void DelCourse(string courseId)方法,此方法又调用DAL层的bool Exist(string courseId) 和int DelCourse(string courseId)方法,它们再调用DBHelper中的具体数据记录操作方法。也是一个标准的3层架构调用机制。

UI层代码重构BLL层 void DelCourse(string courseId)DAL层 int DelCourse(string courseId)bool Exist(string courseId)

图3.10 课程删除的3层调用流程

? 举一反三 1、

--------------------------------------------------------------------------------------------------------------------------

任务3-4:课程浏览的3层实现

? 效果与描述

在上面2个任务中,利用3层架构,实现了课程记录的添加和删除。在记录添加和删除后,都需要重新刷新课程表的浏览;在窗体加载时,也需要在数据网格中浏览课程表当前所有记录。基于3层架构的课程记录浏览还未实现。

记录浏览的业务流程比较简单,就是再窗体加载时,添加、删除记录后,浏览课程表当前的而所有记录。记录浏览在本质上就是:给数据网格提供数据源。数据源要求是1个数据表DateTable,或者是1种集合:如数组、集合、泛型集合等。

根据业务需求,从底到高来设计每层。在课程表的数据访问层类,添加浏览方法,将课程表的当前所有记录取出,并放入集合。在课程管理的业务逻辑层类,添加浏览方法,调用数据访问层的新方法,取得此集合;最后,在界面层,在恰当控件的恰当事件里,调用业务逻辑层的浏览方法。 本任务的设计流程如记录添加的设计流程,不再赘述。

? 相关知识与技能

在本任务中,需要用到新的知识点:集合和泛型集合。 3-4-1 泛型集合的定义与使用

集合好比容器,将一系列相似的对象组合在一起,集合中包含的对象称为集合元素。.NET 中,集合可分为泛型集合类和非泛型集合类。泛型集合类一般位于system.Collections.Generic命名空间,非泛型集合类位于System.Collections命名空间,除此之外,在System.Collection. Specialized命名空间中也包含了一些有用的集合类。

1、非泛型集合System.Collections命名空间下的.NET非泛型集合类如下所示: System.Collections.ArrayList:数组集合类 System.Collections.BitArray:布尔集合类 System.Collections.Queue:队列 System.Collections.Stack:堆栈

System.Collections.Hashtable:哈希表

System.Collections.SortedList:排序集合类

非泛型集合操作直观,但由于集合中的对象是Object类型,如果集合中需要存放其它类型的对象,则每次使用都必须进行繁琐的类型转换。因此,一般情况下,泛型集合用的比较多。

2、泛型

泛型就好比Word中的模板,在定义Word模板时,对具体编辑哪种类型的文档是未知的。在.NET中,泛型提供了类、结构、接口和方法的模板,定义泛型时的具体类型也是未知的。

例如,可以定义一个泛型类:

class FX {

private T x; public FX(){} public FX(T x) {

this.x = x; }

public T num() {

return x; } }

此类表示一种模板,此模板中包含一个字段,2个构造函数,和一个返回字段值的方法,字段和方法的类型都是未知的。

实例化此类可以是:

FX f=new FX(3); 表示用整型来实例化,并为字段赋值为3。 也可以这样实例化:

FX g = new FX(3.4); 表示用实型进行实例化,并为字段赋值3.4。 所以,实例化泛型类必须在<>内填上确定的类型,表示此模板目前作用于什么类型。 3、泛型集合

在3层结构的应用程序中,用到的泛型集合System.Collections.Generic命名空间下的.NET泛型集合类主要是:System.Collections.Generic .List类。查阅msdn的List(Of T) 类,

对泛型集合进行定义和使用。

(1)定义

List<T> 集合名 = new List<T>(); 表示定义1个List类的泛型集合,集合中对象的类型为T。其中的T就是所要使用的类型,既可以是简单类型,如string、int,也可以是用户自定义类型如course类。

(2)属性

Count:获取集合中实际包含的元素数 Item:获取或设置指定索引处的元素 (3)方法

Add(T item):将对象添加到 List 的结尾处。 例如以下代码: class Person {

private string name; private int age; public Person() {}

public Person(string name, int age) {this.name=name; this.age=age;} }

private void button1_Click(object sender, EventArgs e) {

List pList = new List(); string name = textBox1.Text.Trim();

int age = Conver …… 此处隐藏:3050字,全部文档内容请下载后查看。喜欢就下载吧 ……

C#三层架构 简单实例分析(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/448545.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)