




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ch12 Ch12 基于基于BSBS结构的数据库开发技术结构的数据库开发技术ASP.NETASP.NET概述概述ADO.NETADO.NET数据库开发数据库开发系统分析与设计系统分析与设计数据库设计数据库设计公共类的编写公共类的编写12.7 12.7 主要功能设计主要功能设计12.8 12.8 网站调试及错误处理网站调试及错误处理12.9 12.9 网站编译与发布网站编译与发布2n本章介绍使用本章介绍使用ASP.NETASP.NET(C#C#)+SQL Server 2005+SQL Server 2005数据库开数据库开发基于浏览器发基于浏览器/ /服务器(服务器(B/SB/S)模式的网上购
2、物系统)模式的网上购物系统n用户可以使用用户可以使用.NET Framework.NET Framework兼容的任何语言来编写用户兼容的任何语言来编写用户自定义内容,如用户自定义函数、存储过程、触发器以及自定义内容,如用户自定义函数、存储过程、触发器以及SQL Server 2005SQL Server 2005中所没有的数据类型。中所没有的数据类型。使用使用.NET Framework.NET Framework不仅能扩展不仅能扩展SQL ServerSQL Server的数据类的数据类型,还能帮助用户实现某些复杂的功能。型,还能帮助用户实现某些复杂的功能。ADO.NETADO.NET提供
3、了许多方便访问提供了许多方便访问SQL Server 2005SQL Server 2005的对象,的对象,利用这些内容用户可以轻松实现对利用这些内容用户可以轻松实现对SQL ServerSQL Server及其它及其它数据源的数据访问。数据源的数据访问。n 通过本章的学习,应掌握网络程序的设计思路、方法和通过本章的学习,应掌握网络程序的设计思路、方法和过程,同时对过程,同时对SQL Server 2005SQL Server 2005有进一步的学习和应用。有进一步的学习和应用。提要提要312.1 C/S12.1 C/S结构与结构与B/SB/S结构结构12.1.1 12.1.1 认识认识C/S
4、C/S结构结构三层三层/结构图结构图4nC/SC/S结构的优点如下:结构的优点如下:能充分发挥客户端计算机的处理能力,很多工作可以能充分发挥客户端计算机的处理能力,很多工作可以在客户端处理后再提交给服务器。在客户端处理后再提交给服务器。客户端响应速度快。客户端响应速度快。应用服务器运行数据负荷较轻,数据安全性较高。应用服务器运行数据负荷较轻,数据安全性较高。nC/SC/S结构的结构的缺点主要有:缺点主要有:维护成本高。维护成本高。系统扩展性差。系统扩展性差。 客户端需要安装专用的客户端软件客户端需要安装专用的客户端软件5 12.1.2 12.1.2 认识认识B/SB/S结构结构B/SB/S结构
5、结构6 12.1.3 C/S 12.1.3 C/S结构与结构与B/SB/S结构的区别结构的区别nClient/ServerClient/Server(C/SC/S)结构是建立在局域网的基)结构是建立在局域网的基础上的,础上的,Browser/ServerBrowser/Server(B/SB/S)结构是建立在广)结构是建立在广域网的基础上的。域网的基础上的。n两种结构存在下列区别两种结构存在下列区别硬件环境不同。硬件环境不同。 对安全要求不同。对安全要求不同。 程序架构不同。程序架构不同。 软件重用度下同。软件重用度下同。 系统维护不同。系统维护不同。 处理问题不同。处理问题不同。 用户接口不
6、同。用户接口不同。 信息流不同。信息流不同。 712.1.4 BS12.1.4 BS的三层结构的三层结构服务员只管接待客人服务员只管接待客人厨师只管烹炒客人要的美食厨师只管烹炒客人要的美食采购员只管按客人需求采购肉,海鲜,蔬菜采购员只管按客人需求采购肉,海鲜,蔬菜他们各负其责共同协作为客人提供美食他们各负其责共同协作为客人提供美食顾客顾客服务员服务员厨师厨师采购员采购员饭店饭店为什么需要三层结构为什么需要三层结构8服务员服务员厨师厨师采购员采购员离职、请假离职、请假其他服其他服务员代替务员代替离职、请假离职、请假离职、请假离职、请假其他厨其他厨师代替师代替其他采其他采购员代替购员代替9服务员服
7、务员厨师厨师采购员采购员三层结构软件模型三层结构软件模型 表示层表示层 业务逻辑层业务逻辑层 数据访问层数据访问层 软件软件系统系统 饭店饭店 10表示层表示层 业务逻辑层业务逻辑层 数据访问层数据访问层 为用户提供为用户提供交互操作界面交互操作界面 负责关键业务的负责关键业务的处理和数据传递处理和数据传递 实现数实现数据库访问据库访问 服务员服务员 厨师厨师 采购员采购员 11什么是三层结构什么是三层结构u表示层: 为用户提供一种交互式操作界面为用户提供一种交互式操作界面 12什么是三层结构什么是三层结构u业务逻辑层业务逻辑层是表示层与数据访问层之间的桥梁,负责数据处理、传递。是表示层与数据
8、访问层之间的桥梁,负责数据处理、传递。 用户请求数据用户请求数据用户请求数据用户请求数据13什么是三层结构什么是三层结构u数据访问层用户请求数据用户请求数据ADO.NETSQL命令命令实现对数据的保存和读取操作实现对数据的保存和读取操作 14三层结构间的依赖关系三层结构间的依赖关系u三层之间依赖关系表示层表示层业务逻辑层业务逻辑层数据访问层数据访问层15三层结构间的数据传递三层结构间的数据传递u三层之间的数据传递方向业务逻辑层业务逻辑层数据访问层数据访问层表示层表示层客客户户请请求求客客户户请请求求响响应应数数据据响响应应数数据据16u三层结构:三层结构:业务逻辑业务逻辑数据访问数据访问两层结
9、构软件模型两层结构软件模型数据数据访问访问业务业务逻辑逻辑用户用户界面界面三层结构软件模型三层结构软件模型当数据库或当数据库或用户界面发用户界面发生改变时需生改变时需要重新开发要重新开发整个系统整个系统当数据库或当数据库或用户界面发用户界面发生改变时不生改变时不需要重新开需要重新开发,只做简发,只做简单调整即可单调整即可u两层结构:用户用户界面界面1712.1.5 12.1.5 如何搭建三层结构如何搭建三层结构 如何搭建表示层、业务逻辑层、数据访问层? 如何实现各层之间的相互依赖?要掌握这一切,我们将整个实现过程分为以下步骤要掌握这一切,我们将整个实现过程分为以下步骤 18搭建三层结构的步骤搭
10、建三层结构的步骤1 1、搭建表示层(创建一个、搭建表示层(创建一个WebWeb应用程序)应用程序)2 2、搭建业务逻辑层(、搭建业务逻辑层(类库类库)3 3、搭建数据访问层(、搭建数据访问层(类库类库)4 4、添加各层之间的相互依赖、添加各层之间的相互依赖 打开打开VS IDEVS IDE环境逐层搭建三层结构环境逐层搭建三层结构 1912.1.6 PetShop 4.012.1.6 PetShop 4.0u宠物商店宠物商店微软展示微软展示.NET.NET企业开发的范企业开发的范例。例。与与SunSun的的PetStorePetStore的商业竞的商业竞争。争。一个小型的电子商务案例。一个小型的
11、电子商务案例。体现了微软推广的开发思想体现了微软推广的开发思想和设计理念。和设计理念。分分2222个项目,经典的系统,个项目,经典的系统,从设计的思想到最好的编码,从设计的思想到最好的编码,学习参考价值很高。学习参考价值很高。20PetShop 4.0PetShop 4.0架构简介架构简介ASP.NET WebASP.NET WebBLLBLLDALFactoryDALFactoryOracleDALOracleDALSQLServerDALSQLServerDALIDALIDALModelModel表示层表示层业务层业务层数据层数据层 典型的三层结构典型的三层结构21n打开打开VSVS开发开
12、发环境,依次选择环境,依次选择 文件文件新建新建项项目目 命令。命令。n在打开的在打开的 新建项目新建项目 对话框中,选择项目类型为对话框中,选择项目类型为Visual StudioVisual Studio解决方案解决方案 ,选择模板为,选择模板为 空白解空白解决方案决方案 。填写。填写解决方案的解决方案的名称,名称,并指定保存并指定保存位置位置搭建搭建3 3层结构层结构22n在在“解决方案资源管理器解决方案资源管理器”中,右击解决方案名中,右击解决方案名称,在快捷菜单中选择称,在快捷菜单中选择 添加添加“新建网站新建网站 n在在“添加添加新新网站网站”对话框对话框中,中,选择选择“ASP.
13、NET “ASP.NET WebWeb窗体窗体网站网站 ,选择位置为,选择位置为 文件系统文件系统 ,并设置,并设置网站路径网站路径搭建搭建3 3层结构(层结构(1 1)表示表示层层23n在在“解决方案资源管理器解决方案资源管理器”中,在解决方案名称中,在解决方案名称上右击鼠标,在弹出的快捷菜单中选择上右击鼠标,在弹出的快捷菜单中选择 添加添加 新建项目新建项目 命令命令n在打开的在打开的“新建项目新建项目”对话框中,选择项目类型对话框中,选择项目类型为为“Visual C#”“Visual C#”,选择模板为,选择模板为“类库类库”。填写。填写项目的名称为项目的名称为“#.BLL”“#.BL
14、L”,该项目用于实现业,该项目用于实现业务逻辑层。此时项目的保存位置已经默认输入了,务逻辑层。此时项目的保存位置已经默认输入了,是刚才创建空白解决方案时产生的路径是刚才创建空白解决方案时产生的路径搭建搭建3 3层结构(层结构(2 2)业务逻辑业务逻辑层层24n搭建数据访问层与搭建业务逻辑层的步骤类似,搭建数据访问层与搭建业务逻辑层的步骤类似,不同的是需要重新填写项目名称为不同的是需要重新填写项目名称为“#.DAL#.DAL”搭建搭建3 3层结构(层结构(3 3)数据访问层数据访问层25n在三层结构开发中,通常还会使用模型层。模型在三层结构开发中,通常还会使用模型层。模型层包含所有与数据库中的表
15、相对应的实体类。表层包含所有与数据库中的表相对应的实体类。表示层、业务逻辑层和数据访问层三层之间通过传示层、业务逻辑层和数据访问层三层之间通过传递实体对象来达到数据传递的目的。递实体对象来达到数据传递的目的。n创建模型层的步骤与搭建创建模型层的步骤与搭建业务层业务层和数据访问层类和数据访问层类似似,但需重新,但需重新填写项目名称填写项目名称为为“#.“#.ModelsModels 搭建搭建3 3层结构(层结构(4 4)模型层模型层26n在在“解决解决方案方案资源管理器资源管理器”中中,三层结构的基本,三层结构的基本框框架已建好。架已建好。业务逻辑层业务逻辑层数据访问层数据访问层模型层模型层表现
16、层表现层27n添加表示层对业务逻辑层及模型层的添加表示层对业务逻辑层及模型层的依赖:右击依赖:右击“解决解决方案方案资源管理器资源管理器”的表示层,的表示层,在弹出的快在弹出的快捷菜单中选择捷菜单中选择 添加引用添加引用 命令命令n在打开的在打开的 添加引用添加引用 对话框中,选择对话框中,选择 项目项目 选项选项卡,卡,选中名称为选中名称为“#.BLL“#.BLL 和和“#.Models“#.Models 的的两个项目,单击两个项目,单击 确定确定 搭建搭建3 3层结构层结构(5)(5)添加各层之间依赖关系添加各层之间依赖关系28n用同样的方法用同样的方法在业务逻辑在业务逻辑层添加层添加对数
17、据访问层和对数据访问层和模型层的依赖,以及数据访问层对模型层的模型层的依赖,以及数据访问层对模型层的依赖依赖n三层结构及各层之间的依赖关系创建完毕三层结构及各层之间的依赖关系创建完毕搭建搭建3 3层结构层结构(5)(5)添加各层之间依赖关系添加各层之间依赖关系29n目前,用于动态目前,用于动态WebWeb应用程序开发的有多种语言,应用程序开发的有多种语言,例如例如ASPASP、ASP.NETASP.NET、PHPPHP和和JSPJSP等。等。nASP.NETASP.NET依据其功能强大、编写容易等特点得到了依据其功能强大、编写容易等特点得到了广泛应用。广泛应用。nASP.NETASP.NET是
18、微软推出的新一代动态是微软推出的新一代动态WebWeb应用程序开应用程序开发平台,是一种建立动态发平台,是一种建立动态WebWeb应用程序的新技术。应用程序的新技术。n它是它是.NET.NET框架的一部分,可以使用任何框架的一部分,可以使用任何.NET.NET兼容兼容的语言(如的语言(如Visual BVisual B、C#C#、J#J#、C+C+)编写编写ASP.NETASP.NET应用程序。应用程序。12.2 ASP.NET12.2 ASP.NET概述概述30nWeb FormWeb Form允许在网页基础上建立强大的窗体。允许在网页基础上建立强大的窗体。 n当建立页面时,可以使用当建立页
19、面时,可以使用ASP.NETASP.NET服务端控件来建立常用服务端控件来建立常用的的UIUI元素,并对它们编程来完成一般的任务。元素,并对它们编程来完成一般的任务。这些控件允许使用内建可重用的组件和自定义组件来这些控件允许使用内建可重用的组件和自定义组件来快速建立快速建立Web FormWeb Form代码简单化,提升程序开发人员的工作效率。代码简单化,提升程序开发人员的工作效率。n与与JavaJava、PHPPHP,ASP 3.0ASP 3.0、PerlPerl等相比,等相比,ASP.NETASP.NET具有方便具有方便性、灵活性、性能优、工作效率高、安全性高、完整性强性、灵活性、性能优、
20、工作效率高、安全性高、完整性强及面向对象等特性,是目前主流的网络编程技术之一。及面向对象等特性,是目前主流的网络编程技术之一。3112.2.1 CLR12.2.1 CLR概述概述nCLRCLR是是.NET Framework.NET Framework的核心,的核心, 和和JavaJava虚拟机类似,也是虚拟机类似,也是一个运行时环境一个运行时环境,负责资源管理,负责资源管理提供内存管理、线程管理、安全性和远程处理等核心服务提供内存管理、线程管理、安全性和远程处理等核心服务保证应用和底层操作系统之间必要的分离保证应用和底层操作系统之间必要的分离可由面向可由面向CLRCLR的所有语言使用的所有语
21、言使用3132 12.2.2 12.2.2.NET.NET的运行环境的运行环境n软件要求软件要求InternetInternet信息服务管理器(信息服务管理器(IISIIS)Visual StudioVisual Studio集成开发环境集成开发环境n硬件的最低要求硬件的最低要求CPUCPU:Intel Pentium -class 600 MHzIntel Pentium -class 600 MHz以上。以上。内存:内存:256MB256MB以上。以上。全部安装(包括帮助文档,即全部安装(包括帮助文档,即MSDNMSDN),安装盘上至少),安装盘上至少需要需要3.8GB3.8GB磁盘空间,
22、系统盘至少磁盘空间,系统盘至少1GB1GB磁盘空间。磁盘空间。不含不含MSDNMSDN的安装,安装盘上至少需要的安装,安装盘上至少需要2GB2GB磁盘空间,系磁盘空间,系统盘上至少需要统盘上至少需要1GB1GB磁盘空间。磁盘空间。显示器:至少支持显示器:至少支持800800 600 600像素,像素,256256色(建议色(建议10241024 768 768像素,增强色像素,增强色1616位)。位)。33 12.2.3 12.2.3ASP.NETASP.NET中的文件类型中的文件类型34nC#C#是一种基于是一种基于.NET.NET平台的面向对象的程序设计语言。在平台的面向对象的程序设计语言
23、。在程序设计过程中,程序设计过程中,C#C#可以定义类、变量、属性、方法、可以定义类、变量、属性、方法、接口、事件等多种元素,遵循面向对象的基本特性,支接口、事件等多种元素,遵循面向对象的基本特性,支持封装、继承及多态。支持基本的数据类型。持封装、继承及多态。支持基本的数据类型。n.NET.NET中对类的组织使用命名空间(中对类的组织使用命名空间(namespacenamespace),允许自),允许自定义命名空间。程序中所有的元素包含在类中。类是程定义命名空间。程序中所有的元素包含在类中。类是程序设计和运行的最小单位。序设计和运行的最小单位。 命名空间的定义及使用命名空间的定义及使用类的定义
24、及使用类的定义及使用变量的定义及使用变量的定义及使用属性的定义及使用属性的定义及使用方法的定义及方法调用方法的定义及方法调用接口的定义与继承接口的定义与继承事件的定义事件的定义12.2.4 C#12.2.4 C#程序设计基础程序设计基础35nC#C#与与JavaJava的对比的对比相似:包括了单一继承、接口、与相似:包括了单一继承、接口、与JavaJava几乎同样的语几乎同样的语法和编译成中间代码再运行的过程。法和编译成中间代码再运行的过程。不同:不同:C#C#借鉴了借鉴了DelphiDelphi的特点,与的特点,与COMCOM直接集成直接集成nC#C#与与C/C+C/C+具有极大的相似性具有
25、极大的相似性由由C C和和C+C+衍生出来的面向对象的编程语言衍生出来的面向对象的编程语言在继承在继承C C和和C+C+强大功能的同时去掉了一些复杂特性强大功能的同时去掉了一些复杂特性(例如没有宏、不允许多重继承等)(例如没有宏、不允许多重继承等)C#C#综合了综合了VBVB简单的可视化操作和简单的可视化操作和C+C+的高运行效率的高运行效率n以其强大的操作能力、优雅的语法风格、创新的语言特以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程成为性和便捷的面向组件编程成为.NET.NET开发的首选语言开发的首选语言12.2.4 C#12.2.4 C#程序设计基础程序设计基础3
26、6n网站的基本结构网站的基本结构 在解决方案资源管理器在解决方案资源管理器的表现层中的表现层中可以看到网站基本结构。可以看到网站基本结构。网站的网站的默认项默认项主要主要有:有:App_DataApp_Data文件夹、文件夹、Default.aspxDefault.aspx文文件和件和Web.configWeb.config文件。文件。App_DataApp_Data文件夹。文件夹。ASP.NETASP.NET网站保留的文件夹,用来放网站保留的文件夹,用来放置数据库文件。置数据库文件。Default.aspxDefault.aspx文件。默认添加的文件。默认添加的aspasp页面文件,用于设页
27、面文件,用于设计网站的界面。计网站的界面。web.configweb.config文件。基于标签的格式配置文件,用于对网文件。基于标签的格式配置文件,用于对网站的一些项目进行配置。站的一些项目进行配置。12.2.5 12.2.5 利用利用C#C#开发数据库应用系统的过程开发数据库应用系统的过程37n添加新项添加新项在解决方案资源管理器,右击新建的网站解决方案,选在解决方案资源管理器,右击新建的网站解决方案,选择择“添加新项添加新项”,打开向导页面,选择要添加的项目类,打开向导页面,选择要添加的项目类型,修改项目名称,点击型,修改项目名称,点击“添加添加”按钮即可。按钮即可。在实际开发过程中,可
28、以将不同类型的文件,放在不同在实际开发过程中,可以将不同类型的文件,放在不同的文件夹以区分不同的层次。的文件夹以区分不同的层次。38n添加数据库添加数据库若使用与若使用与Visual StudioVisual Studio集成的集成的SQL ServerSQL Server数据库数据库,系,系统默认将数据库添加在统默认将数据库添加在App_DataApp_Data文件夹下。右击文件夹下。右击App_DataApp_Data文件夹,选择文件夹,选择“添加新项添加新项”,打开向导页面。,打开向导页面。在向导页面,选择数据库类型,修改数据库实例名称,在向导页面,选择数据库类型,修改数据库实例名称,点
29、击点击“添加添加”按钮。添加成功后,在按钮。添加成功后,在App_DataApp_Data文件夹下文件夹下可看到该数据库文件。在服务器资源管理器窗口,也可可看到该数据库文件。在服务器资源管理器窗口,也可以看到新添加的数据连接以看到新添加的数据连接 39n界面设计界面设计ASP.NETASP.NET WebWeb窗体窗体网站页面分为源页面和设计页面网站页面分为源页面和设计页面 设计页面为可视化开发界面,遵循所见即所得的开发设计页面为可视化开发界面,遵循所见即所得的开发理念,通过拖拽工具箱控件,直接布局界面。理念,通过拖拽工具箱控件,直接布局界面。 如果对如果对htmlhtml代码熟悉的话,可以在
30、源页面编辑界面代码熟悉的话,可以在源页面编辑界面. .40n业务逻辑处理的设计编码业务逻辑处理的设计编码与页面关系紧密的业务逻辑代码,通常在页面文件对应与页面关系紧密的业务逻辑代码,通常在页面文件对应的的.cs.cs文件中编写,如文件中编写,如Main.aspxMain.aspx界面对应界面对应Main.aspx.csMain.aspx.cs文件。文件。41n后台业务逻辑后台业务逻辑与数据库关系密切的处理过程,可以在页面文件的与数据库关系密切的处理过程,可以在页面文件的.cs.cs文件中编写代码完成,也可以建立单独的业务逻辑类,文件中编写代码完成,也可以建立单独的业务逻辑类,通过传递消息的方式
31、,将前台业务逻辑处理过的数据传通过传递消息的方式,将前台业务逻辑处理过的数据传递过来,再通过该层业务逻辑类进行数据库的存取。递过来,再通过该层业务逻辑类进行数据库的存取。42n数据库访问设计数据库访问设计对数据库的访问,如果数据库操作代码是在页面文件对数据库的访问,如果数据库操作代码是在页面文件的的.cs.cs文件,或者单独的业务逻辑类中编写,在每次文件,或者单独的业务逻辑类中编写,在每次进行数据库访问时,需要设置数据库连接参数,建立进行数据库访问时,需要设置数据库连接参数,建立并打开数据库连接。并打开数据库连接。另一种方法是建立单独的数据库访问类,该类中设置另一种方法是建立单独的数据库访问类
32、,该类中设置数据库连接参数,并返回一个数据库连接对象。其他数据库连接参数,并返回一个数据库连接对象。其他类只要获取该对象即可直接使用,所以公共的数据库类只要获取该对象即可直接使用,所以公共的数据库访问类一般为访问类一般为staticstatic类。类。43n创建实体类创建实体类模型模型层中层中,与数据库中,与数据库中每个每个表相对应的有一个实体类表相对应的有一个实体类如:将如:将默认的类名默认的类名Class1.csClass1.cs重命名重命名为为“User.csUser.cs”(其它实体类可通过(其它实体类可通过“添加添加”“类类”),),该实体类该实体类与与数据库中数据库中的表的表Use
33、rsUsers相对应相对应。3 3层架构各层之间的协同层架构各层之间的协同工作工作每个成员变量对每个成员变量对应表中的一列应表中的一列44n创建数据创建数据访问类访问类针对模型层中的每个实体类,数据访问层有一个对应针对模型层中的每个实体类,数据访问层有一个对应的数据访问的数据访问类类如:针对如:针对UserUser实体类,创建一个对应的实体类,创建一个对应的UserServiceUserService类,类,用于对数据表用于对数据表UsersUsers的的数据处理数据处理3 3层架构各层之间的协同层架构各层之间的协同工作工作45n创建业务逻辑类创建业务逻辑类针对模型层中的每个实体类,业务逻辑层
34、中也有一个针对模型层中的每个实体类,业务逻辑层中也有一个对应的类对应的类。如如,针对,针对UserUser实体类,创建一个对应的实体类,创建一个对应的UserManagerUserManager类,类,在其中添加在其中添加用于登录验证的业务方法用于登录验证的业务方法3 3层架构各层之间的协同层架构各层之间的协同工作工作46n编写表示层代码编写表示层代码创建页面创建页面Login.aspxLogin.aspx双击双击 登录登录 按钮,生成其按钮,生成其ClickClick事件,并在代码后置文事件,并在代码后置文件件Login.aspx.csLogin.aspx.cs中编写事件处理程序中编写事件处
35、理程序3 3层架构各层之间的协同层架构各层之间的协同工作工作47n运行程序前,还需设置启动项目运行程序前,还需设置启动项目。在在 解决方案资源管理器解决方案资源管理器 中的表示层上单击鼠标右键,中的表示层上单击鼠标右键,在弹出的快捷菜单中选择在弹出的快捷菜单中选择 设为启动项目设为启动项目 命令,将表命令,将表示层设置为启动示层设置为启动项目项目右击右击Login.aspxLogin.aspx,把登录页面设为起始页,把登录页面设为起始页3 3层架构各层之间的协同层架构各层之间的协同工作工作4812.312.3ADO.NETADO.NET数据库开发数据库开发nADO.NETADO.NET提供对提
36、供对Microsoft SQL ServerMicrosoft SQL Server数据源以及通过数据源以及通过OLE OLE DBDB和和XMLXML公开数据源的一致访问。公开数据源的一致访问。nADO.NETADO.NET是一组向是一组向.NET.NET程序开发者公开数据访问服务的类。程序开发者公开数据访问服务的类。ADO.NETADO.NET为创建分布式数据共享应用程序提供了一组丰富为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、的组件。它提供了对关系数据、XMLXML和应用程序数据的访和应用程序数据的访问,因此是问,因此是.NET Framework.NET Fr
37、amework中不可缺少的重要组成部分。中不可缺少的重要组成部分。ADO.NETADO.NET支持多种开发需求,包括创建由应用程序、工具、支持多种开发需求,包括创建由应用程序、工具、语言或语言或InternetInternet浏览器使用的前端数据库客户端和中间层浏览器使用的前端数据库客户端和中间层业务对象。另外,由于业务对象。另外,由于ADO.NETADO.NET被集成到被集成到.NET Framework.NET Framework中,所以它可用于任何中,所以它可用于任何.NET.NET语言,例如语言,例如C#C#。n应用程序开发者可以使用应用程序开发者可以使用ADO.NETADO.NET来
38、连接各种数据源,并来连接各种数据源,并检索、处理和更新所包含的数据。检索、处理和更新所包含的数据。nADO.NETADO.NET主要包括主要包括ConnectionConnection、CommandCommand、DataReaderDataReader、DataSetDataSet、DataAdapterDataAdapter对象。对象。49这这5 5个对象提供了个对象提供了2 2种读种读取数据库的方式:一种取数据库的方式:一种是利用是利用ConnetctionConnetction、CommandCommand和和DataReaderDataReader对对象,这种方式只能读取象,这种方
39、式只能读取数据库,不能修改记录,数据库,不能修改记录,若只是查询记录,这种若只是查询记录,这种方式的效率更高些;第方式的效率更高些;第二种是利用二种是利用ConnectionConnection、CommandCommand、DataAdapterDataAdapter和和DataSetDataSet对象,这种方对象,这种方式更灵活,可以对数据式更灵活,可以对数据库进行各种操作。库进行各种操作。 5012.3.1 12.3.1 使用使用ADO.NETADO.NET开发数据库应用程序的一般步骤开发数据库应用程序的一般步骤 (1 1)根据使用的数据源,确定使用的数据提供程序;)根据使用的数据源,确
40、定使用的数据提供程序;(2 2)建立与数据源的连接,需使用)建立与数据源的连接,需使用ConnectionConnection对对象;象;(3 3)执行对数据源的操作命令,通常是)执行对数据源的操作命令,通常是SQLSQL命令,命令,需使用需使用CommandCommand对象;对象;(4 4)使用数据集对获得的数据进行操作,需使用)使用数据集对获得的数据进行操作,需使用DataReaderDataReader、DataSetDataSet等对象;等对象;(5 5)向用户显示数据,需使用数据控件。)向用户显示数据,需使用数据控件。51ConnectionConnection对象用于连接到数据库
41、和管理对数据库的事务对象用于连接到数据库和管理对数据库的事务 ConnectionStringConnectionString属性属性 DatabaseDatabase属性属性 DataSourceDataSource属性属性 OpenOpen方法方法 CloseClose方法方法 对于不同的数据库,对于不同的数据库,ADO.NETADO.NET采用不同的采用不同的ConnectionConnection对象进对象进行连接。行连接。 SqlConnectionSqlConnection OleDbConnectionOleDbConnection OdbcConnectionOdbcConne
42、ction OracleConnection OracleConnection 打开连接后获取当前数据库的打开连接后获取当前数据库的名称,或打开连接前获取连接名称,或打开连接前获取连接字符串中指定的数据库名字符串中指定的数据库名获取要连接的数据获取要连接的数据库服务器的名称库服务器的名称52SqlConnectionSqlConnection连接连接SQL ServerSQL Server数据库,如数据库,如SQL Server SQL Server 20002000、SQL SQL Server Server 20052005、SQL Server 2008SQL Server 2008及以
43、上版本及以上版本OracleConnectionOracleConnection连接连接OracleOracle数据库,如数据库,如Oracle 10gOracle 10g、11g11gOleDbConnectionOleDbConnection连接支持连接支持OLE DBOLE DB的数据库,如的数据库,如AccessAccessOdbcConnectionOdbcConnection连接任何支持连接任何支持ODBCODBC的数据库,如的数据库,如MySQLMySQL数据库数据库ConnectionConnection各个对象类功能各个对象类功能53【例例】 实例环境:实例环境:SQL Se
44、rverSQL Server服务器的名称为服务器的名称为LISALISA;登陆模式为;登陆模式为WindowsWindows身份验证模式;连接的数据库为身份验证模式;连接的数据库为CompanySalesCompanySales。配置配置SqlConnectionSqlConnection对象的对象的ConnectionStringConnectionString属性的字符串如下:属性的字符串如下:SERVER=LISA; SERVER=LISA; Initial Catalog= CompanySales;Initial Catalog= CompanySales;Integrated Se
45、curity=SSPI;Integrated Security=SSPI;【例例】实例环境如下:实例环境如下:SQL ServerSQL Server服务器的服务器的IPIP地址为地址为;登;登陆模式为陆模式为SQL ServerSQL Server身份验证模式;连接的数据库为身份验证模式;连接的数据库为CompanySalesCompanySales;登陆的帐户名称为登陆的帐户名称为sasa;登陆密码为:;登陆密码为:123456123456;配置配置SqlConnectionSqlConnection对象的对象的ConnectionStringC
46、onnectionString属性的字符串如下:属性的字符串如下:SERVER=;SERVER=;Initial Catalog= CompanySales;Initial Catalog= CompanySales;User ID=sa; Password=123456; User ID=sa; Password=123456; 用用SSPI SSPI 支持的安全包支持的安全包 进行用户身份验证,进行用户身份验证,SSPISSPI是是 MicrosoftMicrosoft的安全支持提供器接口,的安全支持提供器接口,是获得验证、信息完整性、信息隐私等
47、集是获得验证、信息完整性、信息隐私等集成安全服务的公用成安全服务的公用APIAPI 54n使用使用SqlConnectionSqlConnection对象连接对象连接SQL Server 2005SQL Server 2005数据库数据库首先定义一个新的首先定义一个新的SqlConnectionSqlConnection对象对象SqlConnection mySqlConnection SqlConnection mySqlConnection ;设置一个针对设置一个针对Sql Server 2005Sql Server 2005数据库的连接字符串数据库的连接字符串string connect
48、ionString =“server=localhoststring connectionString =“server=localhost;database=teachingdatabase=teaching;uid=sauid=sa;pwd=sa”pwd=sa”;将数据库连接字符串传入将数据库连接字符串传入SqlConnection(SqlConnection() )构造函数构造函数mySqlConnection = new SqlConnection(connectionString)mySqlConnection = new SqlConnection(connectionString
49、);打开数据库连接打开数据库连接 mySqlConnection.Open(mySqlConnection.Open() );关闭数据库连接关闭数据库连接mySqlConnection.Close(mySqlConnection.Close() );55使用使用ConnectionConnection对象与数据源建立连接后,可使用对象与数据源建立连接后,可使用CommandCommand对象对对象对数据源执行查询、添加、删除和修改等各种操作。数据源执行查询、添加、删除和修改等各种操作。CommandCommand对象的对象的常用属性和方法如下。常用属性和方法如下。 CommandTypeCom
50、mandType属性属性 CommandTextCommandText属性属性 ConnectionConnection属性属性 ExecuteNonQueryExecuteNonQuery方法方法 ExecuteReaderExecuteReader方法方法 CommandCommand对象主要可以用来对数据库发出一些指令,例如可以对数对象主要可以用来对数据库发出一些指令,例如可以对数据库传递查询、新增、修改、删除数据等指令,以及呼叫存在数据库传递查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等据库中的预存程序等DataSetCommandDataSetCommand对象主
51、要是在数据源以及对象主要是在数据源以及DataSetDataSet之间执行数据传之间执行数据传输的工作,它可以透过输的工作,它可以透过CommandCommand对象传递命令后,将取得的数据放对象传递命令后,将取得的数据放入入DataSetDataSet对象。对象。 CommandCommand对象要执行对象要执行命令的类型命令的类型对数据源执行的对数据源执行的SQLSQL语句语句或存储过程名或表名或存储过程名或表名CommandCommand对象使用的对象使用的ConnectionConnection对象的名称对象的名称执行执行SQLSQL语句并返回语句并返回受影响的行数受影响的行数执行返回
52、数据集的执行返回数据集的SelectSelect语句语句56 例例 使用使用CommandCommand对象向数据库中的表添加数据。对象向数据库中的表添加数据。SqlConnection mySqlConnection = new SqlConnection mySqlConnection = new SqlConnection(connectionString)SqlConnection(connectionString);mySqlConnection.Open(mySqlConnection.Open() ); string sqlstr=“insert into course(cnam
53、e) string sqlstr=“insert into course(cname) values(values(数据库应用与开发数据库应用与开发)”;SqlCommand myCmd=new SqlCommand myCmd=new SqlCommand(sqlstr,mySqlConnection);SqlCommand(sqlstr,mySqlConnection);myCmd.ExecuteNonQuery();myCmd.ExecuteNonQuery(); mySqlConnection.Close( mySqlConnection.Close() );57 DataReader
54、 DataReader对象是一个简单的数据集,用于从数据源中检索只读对象是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。数据集,常用于检索大量数据。 根据根据.NET Framework.NET Framework数据提供程序不同,数据提供程序不同,DataReaderDataReader也可以也可以分成分成SqlDataReaderSqlDataReader、OleDbData ReaderOleDbData Reader等几类。等几类。 通过通过CommandCommand对象的对象的ExecuteReaderExecuteReader方法从数据源中检索数据方法从数据
55、源中检索数据来创建来创建DataReaderDataReader对象。对象。 当需要循序的读取数据而不需要其他操作时,可以使用此对象。当需要循序的读取数据而不需要其他操作时,可以使用此对象。 DataReaderDataReader对象的常用属性和方法如下。对象的常用属性和方法如下。 FieldCountFieldCount属性:获取当前行的列数。属性:获取当前行的列数。 ReadRead方法:使方法:使DataReaderDataReader对象前进到下一条记录。对象前进到下一条记录。58 例例 使用使用DataReaderDataReader对象读取数据对象读取数据SqlConnectio
56、n mySqlConnection = new SqlConnection mySqlConnection = new SqlConnection(connectionString)SqlConnection(connectionString);mySqlConnection.Open(mySqlConnection.Open() ); string sqlstr=“select sname from student”string sqlstr=“select sname from student”;SqlCommand myCmd=new SqlCommand(sqlstr,mySqlCon
57、nection);SqlCommand myCmd=new SqlCommand(sqlstr,mySqlConnection);SqlDataReader myReader=myCmd.ExecuteReader();SqlDataReader myReader=myCmd.ExecuteReader();Array myArray=new Array();Array myArray=new Array();while(myReader.Read()while(myReader.Read() myArray.Add(myReader“sname”.ToString); myArray.Add
58、(myReader“sname”.ToString);myReader.Close();myReader.Close(); mySqlConnection.Close( mySqlConnection.Close() );59 DataSetDataSet对象是创建在内存中的集合对象,它包含数据对象是创建在内存中的集合对象,它包含数据表、表的约束、索引和关系。可视为一个暂存区表、表的约束、索引和关系。可视为一个暂存区(CacheCache),可把从数据库中所查询到的数据保留起来,),可把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。甚至可以将整个数据库显示出来。 一个一个Da
59、taSetDataSet对象包括一组对象包括一组DataTableDataTable对象和对象和DataRelationDataRelation对象,其中每个对象,其中每个DataTableDataTable对象由对象由DataColumnDataColumn、DataRowDataRow和和DataRelationDataRelation对象组成。对象组成。 使用使用DataSetDataSet对象的方法有以下几种,这些方法可以单对象的方法有以下几种,这些方法可以单独应用,也可以结合应用。独应用,也可以结合应用。以编程方式在以编程方式在DataSetDataSet中创建中创建DataTabl
60、eDataTable、DataRelationDataRelation和和ConstraintConstraint,并使用数据填充,并使用数据填充通过通过DataAdapterDataAdapter用现有关系数据源中的数据表填用现有关系数据源中的数据表填充充DataSetDataSet。使用使用XMLXML加载和保持加载和保持DataSetDataSet内容内容60DataAdapterDataAdapter对象是对象是DataSetDataSet对象和数据源之间联系的对象和数据源之间联系的桥梁,主要是从数据源中检索数据、填充桥梁,主要是从数据源中检索数据、填充DataSetDataSet对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新冠肺炎诊断和治疗
- 静脉溶栓治疗方案
- 合伙经营双方协议合同书二零二五年
- 二零二五版代持股权协议书
- 全新委托物业管理协议书
- 企业如何借助医疗信息化系统提升竞争力
- 劳务派遣公司与学校合作协议书二零二五年
- 2025至2030全球及中国第三方物流市场经营风险及未来营销趋势研究报告
- 2025至2030全球及中国丹七胶囊市场竞争策略分析及发展行情监测报告
- 美容师招聘合同
- 2025劳动合同范本下载打印
- 微生物检验的基础知识试题及答案
- 2025年北京市三类人员安全员c3证考试题库及答案
- (四调)武汉市2025届高中毕业生四月调研考试 地理试卷(含答案)
- GB/T 45434.3-2025中国标准时间第3部分:公报
- 海南省海口市(2024年-2025年小学五年级语文)统编版期中考试((上下)学期)试卷及答案
- 整形美容医院5月营销活动政策方案
- 全文《中国式现代化》PPT
- 中国华电集团公司火电厂烟气脱硫工程(石灰石石膏湿法)设计导则(a版)
- 心肺交互作用-
- 封条模板A4直接打印版
评论
0/150
提交评论