第19章_C_数据库编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第19章_C_数据库编程.ppt》由会员分享,可在线阅读,更多相关《第19章_C_数据库编程.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/ C#数据库编程数据库编程 http:/ C#数据库编程数据库编程 n数据库技术是所有计算机应用必不可少的一个重要环节。在数据库技术是所有计算机应用必不可少的一个重要环节。在.NET环境下,数据库的访问主要是通过环境下,数据库的访问主要是通过ADO.NET来实现的。来实现的。本章介绍本章介绍C#数据库编程知识,并用实例讲述数据库编程知识,并用实例讲述C#访问常用数访问常用数据库,如据库,如SQL Server、Oracle、Access等的方法。等的方法。n本章教学目的:本章教学目的:n了解了解ADO.NETn掌握应用掌握应用ADO.NET对数据库进行访问的编程技术对数据库进行访问
2、的编程技术n学会学会C#数据库应用程序的设计数据库应用程序的设计http:/ C#数据库编程数据库编程 n19.1 ADO.NET 数据库访问数据库访问 n19.2 ADO.NET访问常用数据库访问常用数据库 n19.3 C#数据库的数据库的Windows编程编程 n19.4 C#数据库的数据库的Web编程编程 http:/ ADO.NET 数据库访问数据库访问u 19.1.1 ADO.NET概述概述 u 19.1.2 ADO.NET的数据访问对象的数据访问对象 http:/ ADO.NET 数据库访问数据库访问http:/ ADO.NET概述概述 nActiveX Data Objects.
3、NET(简称简称ADO.NET)是微软设计的一种新的数据库访是微软设计的一种新的数据库访问技术。问技术。ADO.NET并非是并非是ADO的升级版,同以往的数据库访问技术相比,的升级版,同以往的数据库访问技术相比,ADO.NET有很多数据处理的优势。首先有很多数据处理的优势。首先ADO.NET提供了对提供了对XML的强大支持,的强大支持,可以通过可以通过XMLReader、XMLWriter、XMLNavigater和和 XMLDocument等方等方便地创建和使用便地创建和使用XML数据;其次数据;其次ADO.NET是为关系数据访问和非关系数据访问是为关系数据访问和非关系数据访问设计的数据连接
4、模型,它可以实现对数据源的非连接处理;另外设计的数据连接模型,它可以实现对数据源的非连接处理;另外ADO.NET新增新增了一些对象,如了一些对象,如DataReader可以产生一个只读的记录集,用来实现快速读取数可以产生一个只读的记录集,用来实现快速读取数据。据。nADO.NET的最突出的特性是可以采用非连接的方式访问和处理数据,这是的最突出的特性是可以采用非连接的方式访问和处理数据,这是ADO所没有的所没有的(ADO只能采用连接的方式访问和处理数据只能采用连接的方式访问和处理数据)。ADO采用基于连接的方式采用基于连接的方式处理数据库的最大不足就是它耗费了太多的资源,尤其当在网络环境下时,大
5、量处理数据库的最大不足就是它耗费了太多的资源,尤其当在网络环境下时,大量用户同时访问数据库会给数据库服务器造成很大的负担。用户同时访问数据库会给数据库服务器造成很大的负担。ADO.NET只在必要的只在必要的时候对数据库进行连接,当处理完毕后它将及时关闭连接,这就保证了数据库服时候对数据库进行连接,当处理完毕后它将及时关闭连接,这就保证了数据库服务器资源的可用性,使它可以为更多的用户服务,因此也就更加适合网络应用。务器资源的可用性,使它可以为更多的用户服务,因此也就更加适合网络应用。http:/ ADO.NET概述概述n1.ADO.NET构架nADO.NET的体系结构如图的体系结构如图19.1所
6、示。所示。nADO.NET具有两大核心组件:具有两大核心组件:DataSet数据集和数据集和.NET Data Provider数据提供程序。数据提供程序。.NET Data Provider中包括中包括Connection对象、对象、Command对象、对象、DataReader对象和对象和DataAdapter 对象。对象。Connection对象用来和数据源进行连接;对象用来和数据源进行连接;Command对象可以用来从对象可以用来从数据库中返回数据、修改数据或运行存储过程;数据库中返回数据、修改数据或运行存储过程;DataReader对象则提对象则提供了对数据库的快速只读、前向访问功能
7、;供了对数据库的快速只读、前向访问功能;DataAdapter 对象是数据对象是数据源和数据集源和数据集DataSet对象交换数据的桥梁,它负责将数据库中的数据填对象交换数据的桥梁,它负责将数据库中的数据填充到充到DataSet对象中。对象中。http:/ ADO.NET概述概述图19.1 ADO.NET的体系结构http:/ ADO.NET概述概述n2.ADO.NET连接数据源的方式n曾经使用过曾经使用过ADO的读者都知道的读者都知道ADO对象中比较重要的一个对象是记录集对象中比较重要的一个对象是记录集Recordset对象。对象。Recordset对象用记录集保存从数据库中返回的数据,对象
8、用记录集保存从数据库中返回的数据,ADO缓存中的数据是由一条条记录构成的记录集。缓存中的数据是由一条条记录构成的记录集。ADO把把记录集当作一个表,对数据库的操作就演化为对该表的操作。如果记录集的内容来自多个数据库表,还记录集当作一个表,对数据库的操作就演化为对该表的操作。如果记录集的内容来自多个数据库表,还必须使用关联查询把它们合并到一个表中。必须使用关联查询把它们合并到一个表中。n与与ADO中的中的Recordset对象对应,在对象对应,在ADO.NET中提供了一个数据集中提供了一个数据集DataSet对象,它取代了对象,它取代了Recordset对象的位置。对象的位置。ADO.NET就是
9、使用数据集就是使用数据集DataSet对象实现了对数据库数据的非连接处理。对象实现了对数据库数据的非连接处理。n数据集数据集DataSet对象可以理解为一个本地的小型数据库。数据集模型包含一个由单个或多个数据表对象可以理解为一个本地的小型数据库。数据集模型包含一个由单个或多个数据表(DataTable)组成的集合,而组成的集合,而DataTable又由许多行又由许多行(DataRow)和列和列(DataColumn)组成。组成。DataSet对象对象中还包含一个中还包含一个DataRelation对象的集合,用它来表示各个数据表之间的关系,数据集结构如图对象的集合,用它来表示各个数据表之间的关
10、系,数据集结构如图19.2所所示。示。n数据集包含了用户请求的那部分数据库在内存中的备份。这个备份甚至能包含多个表以及表之间的关系数据集包含了用户请求的那部分数据库在内存中的备份。这个备份甚至能包含多个表以及表之间的关系的整个数据库。所以对于数据集对象的访问类似于对数据库的访问,即数据集提供了被访问数据库的非的整个数据库。所以对于数据集对象的访问类似于对数据库的访问,即数据集提供了被访问数据库的非连接备份连接备份离线备份,这相当于直接给出了处理数据库的情境,也就是说,给用户的感觉是数据集与离线备份,这相当于直接给出了处理数据库的情境,也就是说,给用户的感觉是数据集与数据源是直接连接的。数据源是
11、直接连接的。nADO.NET连接数据源机制是:首先通过数据提供程序中的连接数据源机制是:首先通过数据提供程序中的Connection对象连接数据源,然后由对象连接数据源,然后由DataAdapter对象用数据库的数据填充数据集,并通过对象用数据库的数据填充数据集,并通过Command和和DataReader对象对数据集中的对象对数据集中的数据进行各种操作,最后把对数据源数据的更新返回数据源,如图数据进行各种操作,最后把对数据源数据的更新返回数据源,如图19.1所示。这种连接机制可以避免所示。这种连接机制可以避免多重写入和多重读出。多重写入和多重读出。n可见数据集是通过无关联对象访问数据库信息的
12、,实现了连接对象与数据对象的相对独立。数据集的缺可见数据集是通过无关联对象访问数据库信息的,实现了连接对象与数据对象的相对独立。数据集的缺点是要求高速缓存大量的数据,如当需要将表中的所有数据送入数据集时。点是要求高速缓存大量的数据,如当需要将表中的所有数据送入数据集时。http:/ ADO.NET概述概述图19.2 数据集结构http:/ ADO.NET概述概述n3.ADO.NET数据访问接口nADO.NET数据提供程序为应用程序开发提供多层非连接模式,它帮助建立数据集和数据数据提供程序为应用程序开发提供多层非连接模式,它帮助建立数据集和数据源之间的连接。源之间的连接。ADO.NET提供了两套
13、数据提供程序,它们是提供了两套数据提供程序,它们是SQL Server.NET 数据提供数据提供程序(程序(System.Data.SqlClient命名空间)和命名空间)和OLE DB.NET数据提供程序数据提供程序(System.Data.OleDb命名空间命名空间)。每种数据提供程序都包含一组构成。每种数据提供程序都包含一组构成ADO.NET构架的类。构架的类。nSQL Server.NET 数据提供程序属于数据提供程序属于System.Data.SqlClient命名空间,它提供一组对命名空间,它提供一组对象来建立数据集的表和象来建立数据集的表和SQL Server数据库中的表之间的联
14、系,其对象名称以数据库中的表之间的联系,其对象名称以Sql前缀加前缀加.NET数据提供程序对象名,如数据提供程序对象名,如SqlConnection、SqlDataAdapter等。等。SQL Server.NET 数据提供程序具有自己的一套访问数据提供程序具有自己的一套访问SQL Server数据库的协议,对访问数据库的协议,对访问SQL Server数据库数据库提供了特殊的优化。提供了特殊的优化。nOLE DB.NET数据支持程序是用来建立数据集中的表与数据支持程序是用来建立数据集中的表与OLE DB数据源之间的连接,其对数据源之间的连接,其对象名称以象名称以OleDb前缀加前缀加.NET
15、数据提供程序对象名,如数据提供程序对象名,如OleDbConnection、OleDbDataAdapter等,它需借助等,它需借助OLE DB 服务组件和数据库的服务组件和数据库的OLE DB支持供程序来访支持供程序来访问数据库,由于需要通过一些中间层,因此在性能上有些损失。如果访问问数据库,由于需要通过一些中间层,因此在性能上有些损失。如果访问Microsoft SQL Server 7.0及以上的数据库系统使用及以上的数据库系统使用SQL Server.NET 数据支持程序更佳,而如果访问数据支持程序更佳,而如果访问Microsoft SQL Server 6.5或较早的数据库系统,或那
16、些提供有符合条件的或较早的数据库系统,或那些提供有符合条件的OLE DB数据数据提供程序的数据库系统使用提供程序的数据库系统使用OLE DB.NET 数据提供程序更好。数据提供程序更好。http:/ ADO.NET的数据访问对象的数据访问对象 nADO.NET使用了某些使用了某些ADO的对象,如的对象,如Connection和和Command对象,并且还引入了新的对象。对象,并且还引入了新的对象。ADO.NET增加的新对象包括增加的新对象包括DataSet、DataReader和和DataAdapter。使用。使用ADO.NET访问数据库离访问数据库离不开对不开对DataSet对象和对象和.N
17、ET数据提供程序中的对象的操作,以下一一介绍它们的作用和使用方法。数据提供程序中的对象的操作,以下一一介绍它们的作用和使用方法。n1.DataSet(数据集)对象nDataSet(数据集数据集)对象是对象是ADO.NET对象模型中最核心的对象。一个对象模型中最核心的对象。一个DataSet(数据集数据集)对象就是一个记对象就是一个记录集的集合,它相当于数据缓冲区。录集的集合,它相当于数据缓冲区。ADO.NET框架提供了记录集的所有数据库功能:排序、分页、过框架提供了记录集的所有数据库功能:排序、分页、过滤视图、关系、索引和主键。滤视图、关系、索引和主键。nDataSet 对象与对象与ADO的的
18、Recordset 对象相似,但功能更为强大,对象相似,但功能更为强大,ADO的一个重要区别就是的一个重要区别就是DataSet 始终与数据源是断开的。始终与数据源是断开的。DataSet 对象表示数据的缓存,具有类似数据库的结构,如表、列、关系和对象表示数据的缓存,具有类似数据库的结构,如表、列、关系和约束。但是,尽管约束。但是,尽管 DataSet 可以并且的确像数据库那样运行,但可以并且的确像数据库那样运行,但DataSet 对象不直接与数据或其他源对象不直接与数据或其他源数据进行交互。这使得开发人员能够使用始终保持一致的编程模型,而不用理会源数据的驻留位置。所数据进行交互。这使得开发人
19、员能够使用始终保持一致的编程模型,而不用理会源数据的驻留位置。所有来自于数据库、有来自于数据库、XML 文件、代码或用户输入的数据都可添加到文件、代码或用户输入的数据都可添加到 DataSet 对象中。这样,当对对象中。这样,当对 DataSet 进行了更改,则在更新源数据之前可以对这些更改进行跟踪和验证。进行了更改,则在更新源数据之前可以对这些更改进行跟踪和验证。DataSet 对象的对象的 GetChanges 方法实际上是创建了另一个方法实际上是创建了另一个DatSet,该,该DatSet只包含对数据做出的更改,然后只包含对数据做出的更改,然后DataAdapter(或其他对象或其他对象
20、)使用此使用此 DataSet 来更新原始的数据源。来更新原始的数据源。nDataSet 具有许多具有许多 XML 特性,包括生成和使用特性,包括生成和使用 XML 数据和数据和 XML 架构的能力。架构的能力。XML 架构可以用来描架构可以用来描述通过述通过 WebServices 交换的架构。实际上,为了类型安全和语句结束,可以对带有架构的交换的架构。实际上,为了类型安全和语句结束,可以对带有架构的 DataSet 进行编译。进行编译。nDataSet(数据集数据集)对象的公共属性如表对象的公共属性如表19.1所示。所示。http:/ ADO.NET的数据访问对象的数据访问对象 名 称描
21、述EnforceConstraints获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束规则HasErrors获取一个值,该值指示此DataSet的任何表的任何行中是否有错误Relations获取用于将表链接起来并允许从父表浏览到子表的关系的集合Tables获取包含在 DataSet 中的表的集合表19.1 DataSet(数据集)对象的公共属性http:/ ADO.NET的数据访问对象的数据访问对象 nDataSet(数据集数据集)对象的公共方法如表对象的公共方法如表19.2所示。所示。表19.2 DataSet(数据集)对象的公共方法名 称描 述AcceptChanges提交自
22、加载此DataSet(或上次调用AcceptChanges以来)对其进行的所有更改Clear通过移除所有表中的所有行来清除任何数据的DataSetClone复制DataSet的结构,包括所有 DataTable 架构、关系和约束。不复制任何数据Copy复制该DataSet的结构和数据RejectChanges回滚自创建DataSet以来(或上次调用 DataSet.AcceptChanges 以来)对其进行的所有更改Reset将 DataSet 重置为其初始状态。子类应重写 Reset,以便将 DataSet 还原到其原始状态http:/ ADO.NET的数据访问对象的数据访问对象 n2.Co
23、nnection对象n要访问数据源的数据,首先要做的就是建立与该数据源的连接。要访问数据源的数据,首先要做的就是建立与该数据源的连接。Connection对象就是用来建立与数据库的连接。对象就是用来建立与数据库的连接。Connection对象提供对象提供一些属性用于我们输入与数据源进行连接所需的信息,如数据源所在的一些属性用于我们输入与数据源进行连接所需的信息,如数据源所在的位置、数据库名、连接的用户账号和密码等,它提供的公共属性如表位置、数据库名、连接的用户账号和密码等,它提供的公共属性如表19.9所示。所示。nConnection对象的公共方法如表对象的公共方法如表19.10所示。所示。h
24、ttp:/ ADO.NET的数据访问对象的数据访问对象 名 称描 述UserId获取登录数据库使用的账号Password获取用户的密码Database获取当前数据库或在连接打开后要使用的数据库的名称DataSource获取数据库所在的位置。一般为数据库所在的主机名,如是文件型数据库,则为文件所在的路径和名字State获取连接的当前状态ConnectionTimeout获取连接超时时间表19.9 公共属性 http:/ ADO.NET的数据访问对象的数据访问对象 名 称描 述Close关闭与数据库的连接。这是关闭任何打开连接的首选方法CreateCommand创建并返回一个与 SqlConnec
25、tion 关联的SqlCommand对象Open使用 ConnectionString 所指定的属性设置打开数据库连接表19.10 公共方法http:/ ADO.NET的数据访问对象的数据访问对象 n创建连接对象。可通过调用创建连接对象。可通过调用Open()方法显式打开连接,也可使用方法显式打开连接,也可使用 DataAdapter 隐式打开连接。隐式打开连接。n连接数据源有以下两种方式。连接数据源有以下两种方式。nSqlConnection:建立与支持:建立与支持SQL Managed Provider的数据库的连接。的数据库的连接。nOleDbConnection:建立与支持:建立与支持
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 19 _C_ 数据库 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内