第一范文网 - 专业文章范例文档资料分享平台

c#三层架构讲稿和学生选课管理系统(2)

来源:用户分享 时间:2022-04-19 本文由柠檬脾气 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(2)利用using语句,调用DBHelper类,生成一个datareader对象

(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项目中,要用到Cour seAccess类和课程实体类Course,分别位于DAL和Modal项目中,所以,必须在项目中加入对此2个项目的引用。UI项目中,要用到CourseBiz类和课程实体类Course,分别位于BLL和Modal项目中,所以,必须在项目中加入对此2个项目的引用。

?任务的实施

1、右击DAL项目,选择新建类文件,命名为:CourseAccess.cs。命名空间改为BF Course. DAL。右击项目,选择添加引用,选中项目里的Common和Modal,然后添加引用语句:usingBFCourse.Modal;usingBFCourse.Common。

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

///

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

///</summary>

///

///

public bool Exist(string courseId)

{

stringstrSql = string.Format("select *from course where courseId='{0}'",courseId);

using(OleDbDataReader dr= DBHelper.GetReader(str Sql))

{

if (dr.HasRows)

return true;

else

returnfalse;

}

--

--

}

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

///<summary>

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

///

///

///<returns></returns>

public intAddCourse(Coursecourse)

{

stringstrSql =string.Format("insert into c ourse values('{0}','{1}','{2}')",course.CourseId,course.Co urseName,course.CourseCredit);

return DBHelper.ExecNonQuery(strSql);

}

4、右击BLL项目,选择新建类文件,命名为:CourseBiz.cs。命名空间改为BFCours

e.BLL。右击项目,选择添加引用,选中项目里的DAL和Modal,然后添加引用语句:using BFCourse.Modal;usingBFCourse.DAL。

5、CourseBiz类部分代码

public classCourseBiz

{

CourseAccess courseAccess =new CourseA

ccess();

///

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

///</summary>

///

publicvoid AddCourse(Coursecourse)

{

if(courseAccess.Exist(course.CourseId))

{

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

return;

}

if (courseAccess.AddCourse(course) >0)

MessageBox.Show("添加成功");

else

MessageBox.Show("添加失败");

}

}

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

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

--

--

privatevoid buttonAdd_Click(object sender, EventArgse)

{

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,cour Credit);

??CourseBizcb= newCourseBiz();

cb.AddCourse(course);

}

此时运行系统,记录添加的部分就是由这3层实现的,界面层按下“添加”按钮后,调用BLL层的voidAddCourse(Course course)方法,此方法又调用DAL层的bool Exis t(stringcourseId)和int AddCourse(Course course)方法,它们再调用DBHelper中的具体数据记录操作方法。是一个标准的3层架构调用机制。

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

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

?举一反三

1、

--

--

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

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

? 效果与描述

图3.8 添加课程删除功能后的课程管理界面

效果图如图 所示,为了实现课程记录的删除,需要按主键删除,所以添加了课程号的文本框和删除按钮。

用3层的技术来实现。首先,也需要理顺记录删除的业务流程,如下图 所示。 在文本框中输入主键字段

是空的文本框吗

是

返回重新输入否

课程号文本框的值

在数据库中存在否

否是

删除该主键的课程记录并刷新浏览

图3.9 课程删除的业务流程

要判断输入的完整性;然后判断输入的课程号主键在数据库中是否已有;若有,则删除该主键的记录。

然后,根据业务需求,从底到高来设计每层。单纯的判断记录有无,已在上个任务实现;单纯的记录删除操作,就可以添加在课程表的数据访问层类。记录删除的逻辑功能:判断输入的课程号主键在数据库中是否已有,若有,则删除记录,由业务逻辑层添加调用数据访问层的删除方法来实现;最后,在界面层,只需判断文本框的输入完整性,然后调用业务逻辑层的删除方法。

--

本任务的设计流程如记录添加的设计流程,不再赘述。

?相关知识与技能

3-3-1 数据访问层的方法设计

在上个任务的CourseAccess类中,为了实现删除,需要添加的方法有:

1、删除记录

方法名:DelXX

形参:代表主键的变量课程号

返回值:int

方法内代码设计:

(1)设计语句delete

(2)调用DBHelper类,用ExeccuteNonQuery()方法执行此语句并返回

应用场合:在表中删除一条记录,根据返回值是否大于0判断执行成功否。

3-3-2业务逻辑层的方法设计

在上个任务的CourseBiz类中,为了实现删除,需要添加的方法有:

1、删除课程

方法名:DelXX

形参:代表主键的变量课程号

返回值:void

方法内代码设计:

(1)调用CourseAccess类对象的Exist()方法,判断形参的课程类对象是否存在,若不存在方法返回;

(2)调用CourseAccess类对象的DelCourse()方法,删除课程,并利用返回值判断添加是否成功。

3-3-3 界面层的设计

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

1、按下删除按钮,实现课程记录的删除

(1)代码放在按钮的CLICK事件中;

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

?任务的设计思路

1、在DAL项目中CourseAccess类,添加删除课程的方法。

2、在BLL项目中CourseBiz类,添加课程删除相关方法。

3、优化界面层代码,调用业务逻辑层类的方法,实现删除。

?任务的实施

1、在CourseAccess类中,添加如下方法:

删除课程,注意形参是课程号

///<summary>

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

///</summary>

///<param name="courseId"></param>

///

publicint DelCourse(stringcourseId)

--

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新综合文库c#三层架构讲稿和学生选课管理系统(2)全文阅读和word下载服务。

c#三层架构讲稿和学生选课管理系统(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1409970.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top