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

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

来源:网络收集 时间:2026-08-20
导读: (3) 利用HasRows 属性判断此datareader对象是否有行,若有,返回真,否则 返回假。 应用场合:在插入记录前判断,若有则不用再插;在删除记录前判断,若有则不能删。 2、方法名:AddXX 形参:代表此表实体类的对

(3) 利用HasRows 属性判断此datareader对象是否有行,若有,返回真,否则

返回假。

应用场合:在插入记录前判断,若有则不用再插;在删除记录前判断,若有则不能删。

2、方法名:AddXX

形参:代表此表实体类的对象 返回值:int

方法内代码设计: (1) 设计语句insert

(2) 调用DBHelper类,用ExeccuteNonQuery()方法执行此语句并返回。 应用场合:在表中添加一条记录,根据返回值是否大于0判断执行成功否。 3-2-2 业务逻辑层的方法设计

一般为系统中的每个功能模块设计1个业务逻辑层的类,实现此模块的所有业务逻辑。在课程添加中,所需要的业务逻辑为课程添加。

首先,由于需要调用数据访问类CourseAccess,因此,在类内设计1个字段为此类对象:

CourseAccess courseAccess = new CourseAccess();

其次,此类需要设计如下方法: 1、 添加课程

方法名:AddXX 形参:课程类对象 返回值:void

方法内代码设计:

(1) 调用CourseAccess类对象的Exist()方法,判断形参所表示的课程类对象是

否存在,若存在方法返回;

(2) 调用CourseAccess类对象的AddCourse()方法,添加课程,并利用返回值判

断添加是否成功。

3-2-3 界面层的设计 界面层的设计,首先需要根据用户的功能需求部署恰当控件,这些控件部署在第2模块已实现,不用改变。然后,把功能实现代码放在恰当控件的恰当事件中,在这些代码中,需要调用业务逻辑层的方法实现。课程添加时,界面上主要的功能如下:

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

(2)代码设计思路:首先进行控件的输入正确性验证;其次利用控件的输入值,生成1个课程实体类对象;利用此对象,调用业务逻辑类对象的AddCourse()方法,插入记录;最后刷新浏览。

? 任务的设计思路

1、在DAL项目中新建针对课程表的数据访问类文件,将所需的2个方法设计在内。 2、在BLL项目中新建针对课程管理的业务逻辑类文件,并设计相关方法。 3、优化界面层代码,调用业务逻辑层类的方法,实现添加。

4、在DAL项目中,要用到DBHelper类和课程实体类Course,分别位于Common和Modal项目中,所以,必须在项目中加入对此2个项目的引用。同理,BLL项目中,要用到CourseAccess类和课程实体类Course,分别位于DAL和Modal项目中,所以,必须在项目中加入对此2个项目的引用。UI项目中,要用到CourseBiz类和课程实体类Course,分别位于BLL和Modal项目中,所以,必须在项目中加入对此2个项目的引用。

? 任务的实施 1、右击DAL项目,选择新建类文件,命名为:CourseAccess.cs。命名空间改为BFCourse. DAL。右击项目,选择添加引用,选中项目里的Common和Modal,然后添加引用语句:using

BFCourse.Modal;using BFCourse.Common。

2、CourseAccess类中判断某课程记录是否存在的方法:

///

/// 根据课号判断此课程是否存在 ///

///

public bool Exist(string courseId) {

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

using (OleDbDataReader dr = DBHelper.GetReader(strSql)) {

if (dr.HasRows) return true; else

return false; } }

3、CourseAccess类中添加课程的方法,注意形参是课程对象

///

/// 利用课程对象添加课程 ///

///

public int AddCourse(Course course) {

string strSql = string.Format(\

values('{0}','{1}','{2}')\,course.CourseId,course.CourseName,course.CourseCredit);

return DBHelper.ExecNonQuery(strSql); }

4、右击BLL项目,选择新建类文件,命名为:CourseBiz.cs。命名空间改为BFCourse. BLL。右击项目,选择添加引用,选中项目里的DAL和Modal,然后添加引用语句:using

BFCourse.Modal;using BFCourse.DAL。

5、CourseBiz类部分代码

public class CourseBiz {

CourseAccess courseAccess = new CourseAccess(); ///

/// 判断逻辑,插入课程

///

///

if (courseAccess.Exist(course.CourseId)) {

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

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

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

}

6、右击UI项目,命名空间改为BFCourse. UI。右击项目,选择添加引用,选中项目里的BLL和Modal,然后添加引用语句:using BFCourse.Modal;using BFCourse.BLL。

7、界面层重构的部分代码

private void buttonAdd_Click(object sender, EventArgs e)

{

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

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

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

MessageBox.Show(\请输入课程名称\); return; }

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

MessageBox.Show(\请输入课程学分\); return; }

string courId = textBox1.Text.Trim(); string courName = textBox2.Text.Trim();

int courCredit = Convert.ToInt32(textBox3.Text.Trim()); Course course = new Course(courId, courName, courCredit); CourseBiz cb= new CourseBiz(); cb.AddCourse(course); }

此时运行系统,记录添加的部分就是由这3层实现的,界面层按下“添加”按钮后,调

用BLL层的void AddCourse(Course course)方法,此方法又调用DAL层的bool Exist(string courseId) 和int AddCourse(Course course)方法,它们再调用DBHelper中的具体数据记录操作方法。是一个标准的3层架构调用机制。

总结:3层架构设计时,根据功能需求,从下而上设计,实际运行时,从上而下调用。

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

图3.7 课程添加的3层调用流程

? 举一反三 1、

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

任务3-3:课程删除的3层实现

? 效果与描述

< …… 此处隐藏:2689字,全部文档内容请下载后查看。喜欢就下载吧 ……
C#三层架构 简单实例分析(2).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)