《 ASPNET数据库网站设计教程(C#版)》 配套教学资源 第7章使用NET数据提 供程序访问数据库 本章内容:NET数据提供程序概述,数据库的连接字符串,连接数据库的 Connection对象,执行数据库命令的 Command对象,读取数据的 Datareader对象,数 据读取器的 Data Adapter对象 本章重点: Connection对象, Command对象, Data Reader对象。 圖王出妖社
第7章 使用.NET数据提 供程序访问数据库 《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 本章内容:.NET数据提供程序概述,数据库的连接字符串,连接数据库的 Connection对象,执行数据库命令的Command对象,读取数据的DataReader对象,数 据读取器的DataAdapter对象。 本章重点:Connection对象,Command对象,DataReader对象
71 ADO.NET简介 71 ADO.NET的数据模型 ASP.NET使用 ADO.NEt数据模型来实现对数据库的连接 和各种操作。 ADO.NET数据模型由ADO发展而来,其主 要特点如下 ① ADO.NET不再采用传统的 ActiveX技术,是一种与NET 框架紧密结合的产物。 ■② ADO. NET包含对XM标准的全面支持,这对于实现跨 平台的数据交换具有十分重要的意义 ■③ ADO. NET既能在数据源连接的环境下工作,也能在断 开数据源连接的条件下工作。特别是后者,非常适合网络 环境多用户应用的需要。因为在网络环境中,若持续保持 与数据源的连接,不但效率低下而且占用系统资源也是很 大的,常常会因多个用户同时访问同一资源而造成冲突 AD○NE较好地解决了在断开网络连接的情况下正确进 行数据处理的问题
◼ 7.1.1 ADO.NET的数据模型 ◼ ASP.NET使用ADO.NET数据模型来实现对数据库的连接 和各种操作。ADO.NET数据模型由ADO发展而来,其主 要特点如下。 ◼ ① ADO.NET不再采用传统的ActiveX技术,是一种与.NET 框架紧密结合的产物。 ◼ ② ADO.NET包含对XML标准的全面支持,这对于实现跨 平台的数据交换具有十分重要的意义。 ◼ ③ ADO.NET既能在数据源连接的环境下工作,也能在断 开数据源连接的条件下工作。特别是后者,非常适合网络 环境多用户应用的需要。因为在网络环境中,若持续保持 与数据源的连接,不但效率低下而且占用系统资源也是很 大的,常常会因多个用户同时访问同一资源而造成冲突。 ADO.NET较好地解决了在断开网络连接的情况下正确进 行数据处理的问题。 7.1 ADO.NET简介
AD○NET采用了层次管理的结构模型,各部分之间的逻 辑关系如图7-1所示。该结构的顶层是应用程序(ASP.NET 网站或 Windows应用程序),中间是数据层( ADO.NEt) 和数据提供器( Provider),在这个层次中,数据提供器 起到了关键的作用。 应用程序 数据层 (ADO. NET) 数据提供器 数据提供器 数据提供器 数据存储区 数据存储区 数据存储区 (XML) (SQL Server) (Oracle) 图7-1 ADO NET的层次结构
◼ ADO.NET采用了层次管理的结构模型,各部分之间的逻 辑关系如图7-1所示。该结构的顶层是应用程序(ASP.NET 网站或Windows应用程序),中间是数据层(ADO.NET) 和数据提供器(Provider),在这个层次中,数据提供器 起到了关键的作用
712 ADO.NET的两种访问数据的方式 在NET框架的 System. Data命名空间及其子空间中有一些类 ,这些类被统称为 ADO.NET。使用 ADO.NEt可以方便地 从 Microsoft AcceSs, Microsoft SQL Server或其他数据库中 检索、处理数据,并能更新数据库中的数据表 ■ ADO. NET提供了两种访问数据的方式 连接式数据访问方式和断开式数据访问方式。 ADO. NEt相应地提供了两个用于访问和操作数据的主要 组件: NET Framework数据提供程序(连接式数据访问方 式)和 DataSet(断开式数据访问方式)
◼ 7.1.2 ADO.NET的两种访问数据的方式 ◼ 在.NET框架的System.Data命名空间及其子空间中有一些类 ,这些类被统称为ADO.NET。使用ADO.NET可以方便地 从Microsoft Access、Microsoft SQL Server或其他数据库中 检索、处理数据,并能更新数据库中的数据表。 ◼ ADO.NET提供了两种访问数据的方式: ◼ 连接式数据访问方式和断开式数据访问方式。 ◼ ADO.NET相应地提供了两个用于访问和操作数据的主要 组件:.NET Framework数据提供程序(连接式数据访问方 式)和DataSet(断开式数据访问方式)
1. NET Framework数据提供程序( NET Framework Data Provider) NET Framework数据提供程序是专门为数据操作以及快速 只进、只读访问数据而设计的组件,包括 Connection、 ommand、 Datareader以及 DataAdapter等对象。通过这些 对象,可以实现连接数据源、数据的维护等操作 ■在连接模式下,客户机一直保持与数据库服务器的连接 这种模式适合数据传输量小、要求响应速度快、占用内存 少的系统。典型的 ADO.NET连接模式如图7-2所示 时象 DataRead对 Command对象 Connection对象 数据库 图7-2 ADO NET连接模式的数据库访问示意图
◼ 1..NET Framework数据提供程序(.NET Framework Data Provider) ◼ .NET Framework数据提供程序是专门为数据操作以及快速 、只进、只读访问数据而设计的组件,包括Connection、 Command、DataReader以及DataAdapter等对象。通过这些 对象,可以实现连接数据源、数据的维护等操作。 ◼ 在连接模式下,客户机一直保持与数据库服务器的连接。 这种模式适合数据传输量小、要求响应速度快、占用内存 少的系统。典型的ADO.NET连接模式如图7-2所示
2. Dataset Dataset是专门为独立于任何数据源的数据访问而设计的 因此,它可以用于多种不同的数据源,例如,用于ⅹMI数 据,或者用于管理应用程序本地的数据,包括 Dataset Datatable、 DataRelation等对象。 Dataset包含一个或多个 Datatable对象的集合,这些对象由数据行和数据列以及有 关Data'able对象中数据的主键、外键、约束和关系信息组 成 断开模式适合网络数据量大、系统节点多、网络结构复杂 尤其是通过 Internet/ Intranet进行连接的网络。典型的 ADO. NET断开模式应用如图7-3所示 Data Set对象 DataAdapter对象 Command对象 Connection对象 数据库 图7-3 ADONET断开模式的数据库访问示意图
◼ 2.DataSet ◼ DataSet是专门为独立于任何数据源的数据访问而设计的, 因此,它可以用于多种不同的数据源,例如,用于XML数 据,或者用于管理应用程序本地的数据,包括DataSet、 DataTable、DataRelation等对象。DataSet包含一个或多个 DataTable对象的集合,这些对象由数据行和数据列以及有 关DataTable对象中数据的主键、外键、约束和关系信息组 成。 ◼ 断开模式适合网络数据量大、系统节点多、网络结构复杂 ,尤其是通过Internet/Intranet进行连接的网络。典型的 ADO.NET断开模式应用如图7-3所示
713 ADO.NET中的常用对象 数据源控件及各类数据显示控件,几乎无须编写任何代码 就可以方便地完成对数据库的一般操作。但是,若希望修 改各类控件的外观设计或执行特殊的数据库操作,就显得 有些困难了 在 ASP.NET中,除了可以使用控件完成数据库信息的浏览 和操作外,还可以使用 ADO. NET提供的各种对象,通过 编写代码自由地实现更复杂、更灵活的数据库操作功能 ADO.NET对象主要指包含在数据集( Dataset)和数据提 供器( Provider)中的对象。使用这些对象可通过代码自 由地创建符合用户需求的数据库Web应用程序。 在AD○NET中,数据集与数据提供器是两个非常重要而 又相互关联的核心组件。它们二者之间的关系如图7-4所示
◼ 7.1.3 ADO.NET中的常用对象 ◼ 数据源控件及各类数据显示控件,几乎无须编写任何代码 就可以方便地完成对数据库的一般操作。但是,若希望修 改各类控件的外观设计或执行特殊的数据库操作,就显得 有些困难了。 ◼ 在ASP.NET中,除了可以使用控件完成数据库信息的浏览 和操作外,还可以使用ADO.NET提供的各种对象,通过 编写代码自由地实现更复杂、更灵活的数据库操作功能。 ◼ ADO.NET对象主要指包含在数据集(DataSet)和数据提 供器(Provider)中的对象。使用这些对象可通过代码自 由地创建符合用户需求的数据库Web应用程序。 ◼ 在ADO.NET中,数据集与数据提供器是两个非常重要而 又相互关联的核心组件。它们二者之间的关系如图7-4所示
应用程序 ADO NET 中 Provider i DataSet DataReader MI DataTable Connectio DataAdapter 数据库 图7-4数据集与数据提供器
714NET数据提供程序概述 NET数据提供程序简介 NET Framework中的数据提供程序( Data Provider)组件 用于同数据源打交道,其功能是连接到数据库、执行命令 和检索结果。它在数据源和代码之间创建最小的分层,并 在不降低功能性的情况下提高性能。表7-1列出了NET Framework中所包含的数据提供程序。 表7-1 NET Framework中所包含的数据提供程序 NET Framework数据提供程序 说明 用于 SQL Server的数据提供程序提供对 SQL Server70或更高版本中数据的访间,使用 System. Data. clIent命名空间 用于 OLE DB的数据提供程序提供对使用 OLE DB公开的数据源中数据的访问,使用 System Data. OleDb命名空间 用于ODBC的数据提供程序提供对使用ODBC公开的数据源中数据的访问,使用 System Data. Odbo命名空间 用于oae的数据提供程序提供对使用Oa817和更高版本中数据的访间,使用 System Data. Oracleclient命名空间 EntityClient提程序提供对实体数据模型(EDM)应用程序的数据访间,使用 System Data Entity Client Aa间
◼ 7.1.4 .NET数据提供程序概述 ◼ 1..NET数据提供程序简介 ◼ .NET Framework中的数据提供程序(Data Provider)组件 用于同数据源打交道,其功能是连接到数据库、执行命令 和检索结果。它在数据源和代码之间创建最小的分层,并 在不降低功能性的情况下提高性能。表7-1列出了.NET Framework中所包含的数据提供程序
NET Framework数据提供程序提供了4个核心对象,这些 对象及其功能见表7-2 表7-2组成 NET Framework数据提供程序的4个核心对象 说明 Connection 建立与特定数据源的连接。所有 Connection对象的基类均为 DbConnection类 Command 对数据源执行命令。公开 Parameters,并可在 Transaction范围内从 Connection执行。所有 Command对象的基类均为 Db Command类 DataReader 从数据源中读取只进且只读的数据流。所有 DataReader对象的基类均为 DbDataReader类 DataAdapter 使用数据源填充 Dataset并解决更新。所有 Data Adapter对象的基类均为 DbDataAdapter类 ■由于数据源不同,因此上述4个对象分别针对不同的数据 源做了不同的实现。例如,对于 SQL Server数据库,它们 的具体实现是 Sqlconnection、 Sqlcommand、 SqlDatareader 和 SqlData Adapter;对于Aces数据库,它们的实现是 OleDbConnection、 OleDbCommand、 OleDbDatareader和 OleDbDataAdapter
◼ .NET Framework数据提供程序提供了4个核心对象,这些 对象及其功能见表7-2。 ◼ 由于数据源不同,因此上述4个对象分别针对不同的数据 源做了不同的实现。例如,对于SQL Server数据库,它们 的具体实现是SqlConnection、SqlCommand、SqlDataReader 和SqlDataAdapter;对于Access数据库,它们的实现是 OleDbConnection、OleDbCommand、OleDbDataReader和 OleDbDataAdapter