1、程序运行后是否生成可执行文件?C#语言中的异常处理语句是什么?语言中的异常处理语句是什么?在在ADO.NET中如何填充中如何填充DataSet数据集?数据集?提问提问提问提问6/41预习检查预习检查为什么使用分层架构?为什么使用分层架构?程序集包含哪两种文件?导致异常的原因有哪些?异常处理语句中出现多个异常处理语句中出现多个catch块,如何排列?块,如何排列?提问提问提问提问7/41本章任务本章任务使用分层的方式实现简单查询使用分层的方式实现简单查询搭建基本的分层架构搭建基本的分层架构实现基本分层系统的功能实现基本分层系统的功能8/41本章目标本章目标理解分层开发的思想理解分层开发的思想掌握
2、搭建分层架构的方法掌握搭建分层架构的方法.NET异常处理机制及多路异常捕获异常处理机制及多路异常捕获9/41“混沌混沌”的代码的代码S1的学生信息管理系统的学生信息管理系统显示学生信息功能显示学生信息功能界面操作代码界面操作代码获取数据代码获取数据代码其它代码其它代码窗体类窗体类几个人共同开发几个人共同开发同一同一个件个件,效率低,效率低改用控制台显示改用控制台显示几乎重新编写几乎重新编写重用重用获取获取数据数据功能功能在窗体内,不好重用在窗体内,不好重用演示示例演示示例1:混沌的代码混沌的代码问题问题问题问题10/41从混沌到清晰:分层从混沌到清晰:分层清晰的结构清晰的结构协同开发协同开发重
3、用重用移植移植获取数据代码获取数据代码界面操作代码界面操作代码不同职责分开不同职责分开管理管理演示示例演示示例2:分层后的:分层后的MySchool11/41生活中的生活中的“分层分层”服务员只管接待客人服务员只管接待客人厨师只管烹炒客人要的美食厨师只管烹炒客人要的美食他们各负其责共同协作为客人提供美食他们各负其责共同协作为客人提供美食顾客饭店饭店12/41软件开发的软件开发的“分层分层”HR 系统系统外包外包A国国数据数据访问层访问层 B国国UI设计设计C国国持久化层持久化层D国国 业务处理层业务处理层13/41分层架构分层架构功能模块按照职责不同统一管理功能模块按照职责不同统一管理操作界面
4、显示数据操作界面显示数据表示层(表示层(UI)操作数据库操作数据库数据访问层(数据访问层(DAL)根据职责不同起的名字根据职责不同起的名字相同职责可进行分层,根据职责不同起名字并不是绝对的相同职责可进行分层,根据职责不同起名字并不是绝对的14/41解决解决方案方案Windows项目项目类库类库项目项目控制台控制台项目项目解决方案与项目解决方案与项目解决方案中可有多个项目,解决方案中可有多个项目,项目项目对应到对应到层层右键设置启动右键设置启动项目项目15/41类库项目与程序集类库项目与程序集Visual Studio 可创建自定义的类库可创建自定义的类库类库项目可编译为类库项目可编译为dll(
5、程序集)(程序集)程序集是程序集是.NET应用程序的主要构造块应用程序的主要构造块包含编写的功能模块、功能所涉及的资源等包含编写的功能模块、功能所涉及的资源等类库程序集:类库程序集:dll可执行程序集:可执行程序集:exe类库项目有默认程序集名称和命名空间名称类库项目有默认程序集名称和命名空间名称16/41层之间的关系层之间的关系项目对应到层,层间的功能如何调用?项目对应到层,层间的功能如何调用?通过添加项目引用实现层间的调用关系通过添加项目引用实现层间的调用关系方方式式一一 引用引用dll引用类库项目引用类库项目问题问题问题问题方方式式二二17/41搭建分层结构搭建分层结构关键步骤关键步骤创
6、建应用程序项目创建应用程序项目UI(表示层)(表示层)创建类库项目创建类库项目 DAL(数据访问(数据访问层)层)添加两层之间的依赖关系添加两层之间的依赖关系分别实现各层的代码分别实现各层的代码操作演示:分层结构的搭建操作演示:分层结构的搭建123418/41常见错误常见错误类库的修改不能及时反映到调用类库项目未重新编译引用错误常见错误单独编译类库项目重新添加引用问题分析解决方法19/41学员操作学员操作显示学生信息显示学生信息需求说明需求说明使用分层架构实现显示学生信息功能使用分层架构实现显示学生信息功能要求显示学生的学号、姓名、性别、出生年月要求显示学生的学号、姓名、性别、出生年月练习练习
7、练习练习完成时间:完成时间:20分钟分钟20/41共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧共性问题集中讲解共性问题集中讲解共性问题集中讲解共性问题集中讲解21/41分层优势初体验分层优势初体验找两个实现了功能的同学的找两个实现了功能的同学的UI层和数据访问层层和数据访问层,整合整合完成功能完成功能职责分开职责分开无损替换无损替换降低依赖降低依赖复用容易复用容易分层优势分层优势操作演示:整合两名学员的项目操作演示:整合两名学员的项目 问题问题问题问题22/41学员操作学员操作显示年级信息显示年级信息 需求说明需求说明在学生查询窗
8、体,添加下拉列表在学生查询窗体,添加下拉列表下拉列表绑定年级信息下拉列表绑定年级信息练习练习练习练习完成时间完成时间:30分钟分钟23/41共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧共性问题集中讲解共性问题集中讲解共性问题集中讲解共性问题集中讲解24/41学员操作学员操作实现登录实现登录2-1训练要点训练要点搭建分层架构的搭建分层架构的Windows程序程序实现项目间的引用关系实现项目间的引用关系需求说明需求说明实现管理员登录功能实现管理员登录功能登录成功后显示系统主界面登录成功后显示系统主界面用户名和密码非空验证用户名和密码非
9、空验证指导指导指导指导25/41讲解需求说明讲解需求说明学员操作学员操作实现登录实现登录2-2实现思路实现思路在数据访问层项目中添加在数据访问层项目中添加 AdminService 类类实现登录方法实现登录方法访问数据库判断用户名访问数据库判断用户名+密码组合是否正确密码组合是否正确在表示层添加登录窗体、主窗体在表示层添加登录窗体、主窗体调用数据访问层方法,并实现登录验证调用数据访问层方法,并实现登录验证登录验证通过后打开主窗体登录验证通过后打开主窗体完成时间完成时间:35分钟分钟指导指导指导指导26/41共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范
10、问题调试技巧调试技巧共性问题集中讲解共性问题集中讲解共性问题集中讲解共性问题集中讲解27/41账户账户姓名金额金额300123张三张三300124王五王五47,000311320李四李四为什么需要异常处理为什么需要异常处理Trade()Sendquery();/./.020,000数据库数据库系统系统将命令发送将命令发送到到数据库中数据库中拒绝交易拒绝交易 余额余额 20000-25000 系统故障系统故障为保障系统出现故障时能够自动处理,需要为保障系统出现故障时能够自动处理,需要使用使用异常处理异常处理网上银行:张三转账网上银行:张三转账25000到李四的账户上到李四的账户上问题问题问题问题
11、28/41异常处理异常处理代码错误代码错误 公共语言运公共语言运 行库遇到意外行库遇到意外 资源资源 不可用不可用 异常异常 程序程序 执执行行异常处理异常处理 恢复恢复程序程序 29/41程序执行过程程序执行过程程序在执行过程中可能出现因多种原因引发的异常程序在执行过程中可能出现因多种原因引发的异常Exception类型类型2-1公共语言运行库引发的异常公共语言运行库引发的异常派生自派生自SystemException类类常见的异常类型包括:常见的异常类型包括:SQLExceptionArgumentNullExceptionFileNotFoundExceptionIOExceptionA
12、pplicationExceptionException类是所有异常的基类类是所有异常的基类30/41 属性名称属性名称说说 明明Source 此属性表示导致异常发生的应用程序或对象此属性表示导致异常发生的应用程序或对象的名称的名称 Message提供引起异常的详细信息提供引起异常的详细信息StackTrace 此属性提供在堆栈上所调用方法的详细信息,此属性提供在堆栈上所调用方法的详细信息,并首先显示最近调用的方法并首先显示最近调用的方法 InnerException对内部异常的引用,如果此异常基于前一个对内部异常的引用,如果此异常基于前一个异常,则内部异常指最初发生的异常异常,则内部异常指最
13、初发生的异常Exception类型类型2-231/41回顾:异常处理结构回顾:异常处理结构常见的异常处理结构常见的异常处理结构try /catch(异常对象异常对象)/异常处理异常处理try /finally /对象清理的代码对象清理的代码try /catch(异常对象异常对象)/异常处理异常处理finally /对象清理的代码对象清理的代码32/41定位异常类型定位异常类型在在C#中如何准确中如何准确的的 确定确定异常的类型?异常的类型?try /引发引发IO 异常异常 /引发数据库操作异常引发数据库操作异常 /引发其它异常引发其它异常catch(Exception ex)/异常处理异常处理
14、try /引发引发IO 异常异常 /引发数据库操作异常引发数据库操作异常 /引发其它异常引发其它异常catch(IOException ex)/处理处理IO 异常异常catch(SqlException ex)/处理处理SQL 异常异常 catch(Exception ex)/处理处理其它其它异常异常多路捕获多路捕获问题问题问题问题33/41多路捕获异常处理多路捕获异常处理多路捕获异常处理多路捕获异常处理的的 代码代码结构结构try /可能引发可能引发 异常的代码异常的代码catch(异常类型异常类型1 ex)/处理处理异常类型异常类型1 catch(异常类型异常类型N ex)/处理处理异常类
15、型异常类型N catch(Exception ex)/处理处理其它其它异常异常注意:子类异常在前,注意:子类异常在前,基类异常在后基类异常在后演示示例演示示例3:多路捕获异常处理:多路捕获异常处理语法语法语法语法34/41抛出异常抛出异常使用使用throw 抛抛出异常出异常/方式一方式一try /可能引发异常的代码可能引发异常的代码catch(SqlException ex)throw ex;catch(Exception ex)throw ex;/方式二方式二try /可能引发异常的代码可能引发异常的代码catch(SqlException ex)throw;catch(Exception ex)throw;演示示例:使用演示示例:使用throw 重新抛出异常重新抛出异常结论:使用方式二可以更精确的定位异常发生的位置结论:使用方式二可以更精确的定位异常发生的位置35/41学员操作学员操作登录功能的异常处理登录功能的异常处理2-1 训练要点训练要点使用使用throw语句抛出异常语句抛出异常异常的多路捕获异常的多路捕获 需求说明需求说明实现登录功能数据访问层和表实现登录功能数据访问层和表
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1