C#三层架构 简单实例分析(2)
(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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




