
ZJWCHC 第十一章 20/728 使用三层结构开发数据库应用 系统
ZJWCHC 第十一章 使用三层结构开发数据库应用 系统

目标 ◆使用三层结构开发项目 ◆体会到使用三层结构开发的优势
目标 使用三层结构开发项目 体会到使用三层结构开发的优势

为什么需要三层结构 饭店 顾客 服务员 厨师 采购员 +服务员只管接待客人 +厨师只管烹炒客人要的美食 +采购员只管按客人需求采购肉,海鲜,蔬菜 +他们各负其责共同协作为客人提供美食
为什么需要三层结构 服务员只管接待客人 厨师只管烹炒客人要的美食 采购员只管按客人需求采购肉,海鲜,蔬菜 他们各负其责共同协作为客人提供美食 顾客 服务员 厨师 采购员 饭店

为什么需要三层结构 离职、请假 离职、请假 离职、请假 服务员 厨师 采购员 其他服 其他厨 其他采 务员代替 师代替 购员代替
服务员 厨师 采购员 为什么需要三层结构 离职、请假 其他服 务员代替 离职、请假 离职、请假 其他厨 师代替 其他采 购员代替

为什么需要三层结构 饭店 服务员 厨师 采购员 软件 系统 表示层 业务逻辑层 数据访问层
服务员 厨师 采购员 为什么需要三层结构 表示层 三层结构软件模型 业务逻辑层 数据访问层 软件 系统 饭店

为什么需要三层结构 登录实现部分(LoginForm类)代码 我们从三方面对登录实现部分代码进行分析 1、界面控件数据绑定实现 2、逻辑判断实现 3、数据库访问实现 首先我们看一下界面部分的关键代码
为什么需要三层结构 :登录实现部分(LoginForm类)代码 我们从三方面对登录实现部分代码进行分析 1、界面控件数据绑定实现 2、逻辑判断实现 3、数据库访问实现 首先我们看一下界面部分的关键代码

为什么需要三层结构 界面层实现 川登录 private void btnLogIn_Click(object sender,EventArgs e) l if (Validatelnput()) { ∥调用用户验证方法 isValidUser ValidateUser(cboLogInType.Text, txtLoglnld.Text,txtLoglnPwd.Text,ref message); ∥如果是合法用户,显示相应的窗体 ∥
为什么需要三层结构 // 登录 private void btnLogIn_Click(object sender, EventArgs e) { //…………….. if (ValidateInput()) { // 调用用户验证方法 isValidUser = ValidateUser(cboLogInType.Text, txtLogInId.Text, txtLogInPwd.Text, ref message); // 如果是合法用户,显示相应的窗体 //……………….. } } 界面层实现

为什么需要三层结构 public boolValidateUser(string loginType,string loginld,string loginPwd,ref string message) int count=0; 数据库查询的结果 bool result=false;/返回值,是否找到该用户 逻辑判 ∥查询是否存在匹配的用户名和密码 断实现 f(login Type-=“管理员”)∥'判断是否是管理员用户 /数据访问实现代码..... else if(loginType="学员") /数据访问实现代码.… } 用户登录实现方法 return result;
为什么需要三层结构 public bool ValidateUser(string loginType, string loginId, string loginPwd, ref string message) { int count = 0; // 数据库查询的结果 bool result = false; // 返回值,是否找到该用户 // 查询是否存在匹配的用户名和密码 if (loginType== “管理员”) // 判断是否是管理员用户 { //数据访问实现代码…………………. } else if (loginType == "学员") { //数据访问实现代码………………….. } return result; } 逻辑判 断实现 用户登录实现方法

为什么需要三层结构 public bool ValidateUser(string loginType,string loginld,string loginPwd,ref string message) . ∥查询是否存在匹配的用户名和密码 管理员信息数据访问 ∥查询用sql语句 string sql=string.Format( "SELECT COUNT(*)FROM Admin WHERE Loglnld='(0)' AND LogInPwd='(1)"",txtLoglnld.Text 学员信息数据访问 txtLoglnPwd.Text ) m询用sq语句 用户登录实现方法 string sql string.Format( "SELECT COUNT(*)FROM Student WHERE Loglnld='(0) AND LoglnPwd='(1)",txtLoglnld, txtLoglnPwd); 通过分析我们得到结论是?
为什么需要三层结构 public bool ValidateUser(string loginType, string loginId, string loginPwd, ref string message) { //……………………. // 查询是否存在匹配的用户名和密码 // 查询用sql语句 string sql = string.Format( "SELECT COUNT(*) FROM Admin WHERE LogInId='{0}' AND LogInPwd='{1}'", txtLogInId.Text txtLogInPwd.Text ); //………. // 查询用sql语句 string sql = string.Format( "SELECT COUNT(*) FROM Student WHERE LogInId='{0}' AND LogInPwd='{1}'",txtLogInId, txtLogInPwd); } 管理员信息数据访问 用户登录实现方法 通过分析我们得到结论是? 学员信息数据访问

为什么需要三层结构 结论是: 1、数据库访问和用户类型判断逻辑放在一起实现 2、用户界面层直接调用数据访问实现 3、整个系统功能放在同一项目中实现 从结论可知,我们开发的两层结构应用系统有哪些局限性?
为什么需要三层结构 1、数据库访问和用户类型判断逻辑放在一起实现 2、用户界面层直接调用数据访问实现 3、整个系统功能放在同一项目中实现 结论是: 从结论可知,我们开发的两层结构应用系统有哪些局限性?