C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章

上传人:E**** 文档编号:89085797 上传时间:2019-05-17 格式:PPT 页数:98 大小:354.50KB
返回 下载 相关 举报
C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章_第1页
第1页 / 共98页
C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章_第2页
第2页 / 共98页
C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章_第3页
第3页 / 共98页
C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章_第4页
第4页 / 共98页
C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章》由会员分享,可在线阅读,更多相关《C#编程和.NET框架课件作者崔建江第7章节ADO.NET程序开发NO7-2006章(98页珍藏版)》请在金锄头文库上搜索。

1、C#编程与.NET框架,第7章 ADO.NET 程序开发,C#编程与.NET框架,概要内容,ADO.NET是.NET 框架的一个重要组成部分,它为数据访问提供了结构、功能强大的、高效的工具包。,第7章 ADO.NET程序开发,7.1 概述 7.2 ADO.NET对象模型 7.3 .NET Data Provider 7.4 DataSet 7.5 关系型数据模型支持 7.6 创建使用ADO.NET的应用程序 7.7 使用VS .NET中的数据向导,7.1 概述,ADO.NET(ActiveX Data Objects)是Microsoft开发的面向对象的数据访问库。由类、接口、枚举和其它工具组

2、成。 ADO.NET用来帮助.NET应用程序访问各种数据源,提供了面向对象的、功能强大的、高效的工具包。,7.1 概述,数据源连接方式 已连接环境: 用户或应用程序持续连接到数据源。在计算机史上,多数情况使用已连接环境。 非连接环境: 用户或应用程序并非一直和数据源保持连接。用户可在非连接的计算机上使用数据子集,以后再将更新提交到数据源。,7.1 概述,以下命名空间提供了.NET数据访问使用的类和接口: System.Data所有的一般数据访问类; System.Data.Common各个数据提供程序共享 的类; System.Data.OleDbOLE Db提供程序的类; System.Da

3、ta.SqlClientSql Server提供程序的类; System.Data.SqlTypesSql Server数据类型,7.2 ADO.NET对象模型,ADO.NET对象模型由两个主要部分组成: .NET Data Provider (.NET数据提供者) DataSet ADO.NET的基本体系结构如下页图所示。,7.2 ADO.NET对象模型(结构),7.3 .NET Data Provider,.NET Data Provider可处理基本的数据操作,如:更新、插入等。 主要任务:从数据源获取数据,并传递到DataSet对象,供应用程序在非连接的环境中使用。,7.3 .NET

4、Data Provider,ADO.NET主要提供两种.NET Data Provider类: SQL Server .NET Data Provider OLE DB .NET Data Provider 另外,Microsoft还开发了ODBC.NET Data Provider等,各个第三方数据库供应商也在开发一些Data Provider。,7.3 .NET Data Provider,SQL Server .NET Data Provider: 可使用SQL Server .NET Data Provider访问SQL Server 7.0及更高版本数据库。因可直接访问SQL Ser

5、ver不通过OLE DB Provider中转,所以提供了更好的性能。 OLE DB .NET Data Provider: 可使用OLE DB .NET Data Provider访问SQL Server 6.5 或更早版本的数据库、Oracle数据库和Microsoft Access数据库。,7.3 .NET Data Provider,.NET Data Provider的核心类:,7.4 DataSet,DataSet是非连接的、位于内存中的关系型数据的高速缓存区,是ADO.NET的非连接架构的核心部分。 数据以通用、不依赖于任何数据源格式保存 DataSet类的层次结构如下页图所示。

6、,7.4 DataSet,对象层次和主要的类,7.4 DataSet,DataSet的对象 DataSet的集合 DataSet的常用方法 DataTable类,7.4.1 DataSet的对象,System.Data命名空间中DataSet的对象可用作数据库虚拟缓存,包含:要操作的数据、schema、关系和约束等信息,这些信息来自一个或多个数据适配器(DataAdapter)、XML或其它DataSet。 DataSet对象可与数据源断开连接,无需持续连接数据源即可高效地对数据进行完全的访问。,7.4 DataSet,DataSet的对象 DataSet的集合 DataSet的常用方法 Da

7、taTable类,7.4.2 DataSet的集合,DataSet包含如下集合: Tables 是DataTable对象的集合,而DataTable对象包含DataColumn和DataRow对象的集合; Relations 是一个DataRelation对象的集合,可用来描述表之间的关系; Constraints 用来确保数据完整性。,7.4 DataSet,DataSet的对象 DataSet的集合 DataSet的常用方法 DataTable类,7.4.3 DataSet的常用方法,DataSet的常用方法如下表所示:,7.4.3 DataSet的常用方法,DataSet的常用方法如下表

8、所示:,7.4.3 DataSet的常用方法,DataSet的常用方法如下表所示:,XSD-XMLSchema Definition,7.4 DataSet,DataSet的对象 DataSet的集合 DataSet的常用方法 DataTable类,7.4.4 DataTable类,DataTable表示内存中的一个数据表,它在DataSet层次结构中接近于顶层位置; 可以把DataTable看作传统数据库表的面向对象的抽象。DataTable由各个列组成,可以包含多个行。它可以具有一个由多个列组成的主键,还可以与其它表联系起来。,7.4.4 DataTable类,创建表的方式有两种: 第一,

9、把数据加载到DataSet中时,可自动创建一些DataTable; 第二,编程的方式创建DataTable:先实例化一个新的DataTable对象,然后把那个实例添加到DataSet的Tables集合中。,DataSet ds=new DataSet(); DataTable quotes=new DataTable(“Quotes”); ds.Tables.Add(quotes);,7.4.4 DataTable类,DataTable的常用方法如下表所示:,7.4.4 DataTable类,DataTable的常用方法如下表所示:,7.4.4 DataTable类,DataTable的常用方

10、法如下表所示:,7.4.4 DataTable类,DataTable主要由DataColumn和DataRow对象组成: DataColumn类是表示DataTable中列的模式或数据结构的类; DataRow类的对象代表DataTable中的一行数据,示例:手工方式处理数据,using System; using System.Data; namespace ManualData class DataMain static void Main(string args) DataSet ds=new DataSet(); DataTable quotes=new DataTable(“Quot

11、es”); DataColumn symbol=new DataColumn(“Symbol”); symbol.DataType=typeof(string); symbol.MaxLength=4; DataColumn description=new DataColumn(“Description”); description.DataType=typeof(string); description.MaxLength=50;,quotes.Columns.Add(symbol);/新列添到表中 quotes.Columns.Add(description); ds.Tables.Add

12、(quotes); /把表放到DataSet中 /添加数据到表中 DataRow newQuote=quotes.NewRow(); newQuote“Symbol”=“MSFT”; newQuote“description”=“Microsoft Corporation”; quotes.Rows.Add(newQuote); Console.WriteLine(“Stock Quote”); Console.WriteLine(“Symbol:0,Description:1”, quotes.Rows0“Symbol”.ToString(), quotes.Rows0“Descriptio

13、n”.ToString(); Console.ReadLine(); ,示例:手工方式处理数据,运行结果如下:,7.4 DataSet,DataSet的对象 DataSet的集合 DataSet的常用方法 DataTable类,7.5 关系型数据模型支持,传统的关系型数据库中,可定义多个表之间的关系,指定一个表中的各个列怎样与另一个表中的列联系。 ADO.NET通过外键、主键和约束,完成表间的联系。下面讨论在DataSet的环境中使用约束、键码和关系。,7.5 关系型数据模型支持,约束和键码 关系,7.5.1 约束和键码,(1) 唯一性约束 UniqueConstraint类保证单行数据中数据

14、的唯一性。UniqueConstraint类可以赋给单个列,也可赋给一组列。例如: 这里在两个列上创建UniqueConstraint,对于每一行,要求Symbol和Description列的组合必须是唯一的。,dataTable stockQuotes=stockDataSet.Tables“StockQuotes”; uniqueConstraint uc=new UniqueConstraint(new DataColumn stockQuotes.Column“Symbol”,stockQuotes.Columns“Description”); stockQuotes.Constrai

15、nts.Add(uc);,7.5.1 约束和键码,(2)外键约束 ForeignKeyConstraint用于定义包含主键的表发生变化时,包含外键的表应该进行的相应操作。主要用于定义执行更新和删除操作时应产生的结果; ForeignKeyConstraint类定义了UpdateRule和DeleteRule两个属性来控制更新和删除这两个行为。,7.5.1 约束和键码,(2)外键约束 DeleteRule属性和UpdateRule属性的值: Cascade针对所有相关的行执行删除或更新操作。是属性的默认值; None针对相关的行不进行任何操作; SetDefault把相关行中的值设置为默认值,默

16、认值由DataColumn的DefaultValue属性给出; SetNull把相关行中所有值设置为Null。,7.5.1 约束和键码,(2)外键约束 这里创建了一个外键约束,设置了规则:删除一个订单将会删除所有订单细节行,更改订单将不会自动更新订单细节。,DataTable custOrders=orderDataSet.Tables“Orders”; DataTable custOrderDetail=orderDataSet.Tables“OrderDetails”; DataColumn orderIdMaster=custOrders.Columns“OrderId”; DataColumn orederIdChild=custOrderDetail.Columns“OrderId”; ForeignKeyConstraint fkc=new ForeignKeyConstrait(“OrdersFKC”,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号