数据库访问技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图8.1.8 学生选课信息
21
• 步骤二:选择数据源类型和数据库模式
22
• 步骤二:选择数据源类型和数据库模式
23
• 步骤三:设置连接数据源 • 步骤四: 选择数据库对象 • 步骤五:通过拖放数据源中的数据表建立 窗体控件与数据的关系.
13
8.2 数据库访问控件对象
访问数据库主要涉及以下控件对象:
• SqlConnection //数据库连接对象
• SqlCommand //执行Sql命令对象
• SqlDataAdapter //数据适配器对象,用于采
集数据并将数据送到客户端数据集DataSet中
• DataSet //数据集对象,一个数据集中可存 放多个表中内容
图8.1.5 SQL Server .NET Framework 数据提供程序和 OLE DB .NET Framework 数据提供程序的比 较
18
8.1.5 DataSet对象模型
在ADO.NET中,DataSet对象主要支持断开连接的、分布式数据的处理, 类似于一个驻留在内存中的关系数据库,表示一个完整的数据集。数据集 可以包含一个或多个表,这些表可以来源于一个数据库,也可以来源于多 个数据库。除了包含表,数据集还可以包含说明表之间关系的对象的数据 结构,即相关约束和表与表之间的联系。DataSet中的方法和对象与关系数 据库模型中的对象和方法是一致的。 •DataSet 包含一个或多个DataTable对象的集合,这些对象由数据行和数据 列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。 •每个 DataTable 对象中包含 DataRow 和 DataColumn 集合。 DataRow 中包含 一个元组的所有信息,保留着原始数据和任何改变的数据; DataColumn表 示属性列的信息。 •DataRelation对象存储关系表之间的联系信息,包括主键和外键之间的对 应关系。
•Dataset对象用 于在内存保存数 据库数据。 •独立于任何数 据源的数据访问。
图8.1.3
ADO.NET组件
9
8.1 数据库访问技术基本概念
说明:
1) Dataset是ADO.NET的断开式结构的核心 组件。它的设计目的:实现独立于任何数 据源的数据访问。 Dataset把数据以XML形式存放在客户 端的内存(不是服务器)。Dataset是与 数据源断开的,不知道数据提供者,无论 数据源是什么,它都会提供一致的关系编 程模型。
6
8.1 数据库访问技术基本概念
(2)采用XML作为数据交换的格式。XML是 跨平台存储和传输数据的工业标准格式, 用XML格式发送信息,可以让程序员很容 易将共享数据应用程序中的数据处理和用 户接口组件分离到不同服务器中,这对于 支持多用户的系统来说,可以较大程度地 提高系统的性能和可维护性。
7
14
8.2 数据库访问控件对象
• Datatable //数据表对象,查询结果即可送 入数据集Dataset,也可送入表Datatable。 • BindingMangerBase // “数据绑定管理器” 对象 • SqlDataReader //数据只读对象
15
1.Connection对象
•Connection对象用于在应用程序和数据库之间建立连接,要连接一个指定的数据源, 它是应用程序访问数据库的第一步。 •要连接Ms SQL Server需要使用SQL Server.NET数据提供程序的SQLConnection对 象;要连接OLE DB数据源,需要使用OLE DB.NET数据提供程序的 OleDbConnection对象。
4
8.1 数据库访问技术基本概念
• ADO(ActiveX Data Object):是在OLE DB的 上层,它进一步简化了数据访问编程。使得 应用程序访问数据库变得更加方便简单。 • ADO.NET采用ADO体系结构模型,并扩展 了功能。 • 本章重点介绍ADO.NET的对象模型功能以 及如何利用这些对象建立VB.NET与数据库 之间的数据访问功能。
• 数据层表示后台的数据库,主要完成数据的存储、 操纵和管理功能; • 表示层是前台的应用程序功能交互界面,为用户提 供基于数据查询和数据操作的业务功能服务; • 数据访问层ADO(ActiveX Data Object)介于数据 层和表示层之间,主要负责数据层与表示层之间的 数据访问和数据传输。。
Microsoft ODBC .NET 数据提供程序
Microsoft Oracle .NET 数据提供程序
Entity Client提供程序
使.NET应用程序可以访问 Oracle数据库
提供对实体数据模型(EDM) 应用程序的数据访问
System.Data.OracleCli ent
System.Data. Entity Client
12
8.1 数据库访问技术基本概念
表8.1.1 ADO.NET的5类数据提供程序
Microsoft SQL Server.NET 数据提供程序 Microsoft OLE DB .NET 数据提供程序 它使.NET应用程序可以直接 System.Data.SqlClient 访问Microsoft SQL Server 数据库 它使.NET应用程序可以使用 System.Data.OleDb 它们本机OLE DB提供程序 访问数据库(可以是不同的数 据源) 它使.NET应用程序可以通过 System.Data.Odbc 使用ODBC访问数据库
10
8.1 数据库访问技术基本概念
(2) .NET Framework数据提供程序:用于 实现对底层数据源的访问。组件包括: Connection、Command、DataAdapter 和DataReader对象。 ( Connection对象提供与数据源的连接。
Command对象执行数据库命令。 DataReader 从数据源中提供高性能的数据流。 DataAdapter 对象执行SQL命令,将数据采集来放 入Dataset对象中。 )
8.1 数据库访问技术基本概念 • ADO.NET组件
• 两个核心组件:Dataset和.NET数据提供程 序(Data Provider)
• Dataset对象用于保存数据, .NET数据提供 程序通过执行SQL命令或存储过程来存取数 据。
8
8.1 数据库访问技术基本概念
数据提供程序的功能: 建立DataSet 和数据库 的连接,保持两者之间 的数据一致性。 通过执行SQL命令或 存储过程来操作数据。
(1)连接字符串格式—SqlConnection
属性 Initial Catalog User ID Password 指定数据库名 用户帐户 用户密码 说明 Data Source 指定数据库服务器名称或位置
•例如:一个SqlConnection连接字符串的例子: Initial Catalog= School; DataSource=myServer; User ID=sa; password=; •如果是集成安全模式,SqlConnection连接字符串可简化为: Initial Catalog= School; DataSource=myServer; Integrated Security=SSPI;
第8章 ADO.NET数据库访问技术
本章主要内容:
ADO.NET体系结构; VB.NET与SQL Server数据库的连接; 数据库应用系统开发中的程序设计.
DB
数据库技术及应用
1
数据层
数据访问层
表示层 用户界面(窗体) VB.NET
数据库 SQL Server
图8.1.2
ADO.NET
ADO.NET对象模型的作用
11
8.1 数据库访问技术基本概念
• 在使用DataSet之前, 都是属于DataProvider的执 行范围, 也就是每家数据库厂商各自的存取方式, 所以用户必须选择合适的DataProvider对象。
• .NET Framework提供了五个数据提供程 序:它们分别为不同数据源提供数据访问 操作支持。如下表。
2
Baidu Nhomakorabea
8.1 数据库访问技术基本概念
1. 通用数据存取(Universal Data Access, UDA) : 为了实现“可从任意类型计算机上的任意 应用程序中访问任意类型的数据源”,微 软提出了UDA概念。而OLE DB和ODBC技 术就是这一概念的实现。
3
8.1 数据库访问技术基本概念
•UDA的关键是数据访问的透明性。即不管数 据在什么地方,数据的提供者可以是各种项 目,包括Oracle、 SQL Server数据库、 EXCEL、E-Mail、文件系统、消息库等等。 UDA通过提供简洁的数据访问层解决了异构 数据访问的问题。使程序员可以用统一的编 程接口,访问不同的数据源。不会因为数据源 的不同,而产生程序编写上的不同。
19
8.1.6 ADO.NET数据库访问的一般过程
1. ADO.NET数据库访问的一般过程 1)创建SqlConnection对象,建立数据库连接。 2)通过SqlCommand创建数据适配器SqlDataAdapter,建立数据库和数据集之间的 “桥”。 3)建立数据集DateSet。通过数据库与DataSet之间的桥SqlDataAdapter,编写程序 代码用于填充数据集和更新数据集。即将数据库中的数据填充到内存数据集DataSet 中;也可以通过SqlDataAdapter将更新过的DataSet中的数据回填到数据库中。 4)在VB.NET程序窗体上添加控件并设置其属性,使其和DataSet对象中的表和属 性列相关联。应用程序针对DataSet进行数据检索和数据更新操作。
17
5. SQLServer.NET数据提供程序 • SQLServer.NET数据提供程序使用Tabular Data Stream(TDS)和 SQL Server通信。由于TDS是SQL Server的本机通信协议,并经过了 优化,可以直接访问 SQL Server 而不用添加 OLE DB或开放式数据库 连接(ODBC)层,因此它是轻量的,并具有良好性能。 • 测试发现,SQLServer.NET数据提供程序的执行速度大约比OLE DB.NET数据提供程序快70%(图7-3)。
16
2.Command对象 与数据源建立连接后,可以直接通过Command对象与数据源进行交互访问。它为 ADO.NET的数据库数据访问带来了很大的灵活性。 3.DataReader对象 DataReader对象可以从数据库中获取一个只读、仅向前的数据流。使用 DataReader可以提高应用程序的性能,减少系统开销,因为在内存中每次只能有一 个缓冲行。 4.DataAdapter对象 DataAdapter对象主要是在数据源以及DataSet之间执行数据传输的工作。 DataAdapter对象用于获得数据源中的数据,填充DataSets;DataAdapter还可以将 DataSet产生的改变解析回数据源。它使用.NET数据提供程序中的Connection对象连 接数据源,使用Command对象获取数据源中的数据并填充到DataSet对象中,并将 DataSet对象中数据的变化写回数据源。
5
8.1 数据库访问技术基本概念
2. ADO.NET体系结构 • ADO.NET的主要技术特点 (1)支持断开连接模型。
• 断开连接模型是指一旦获得所需的数据,就断开 对数据源的连接,使用离线数据集继续在本机上 处理数据。优点是大大减少传输切断数据的开销, 保证应用程序不会太长时间持有数据库锁或持久 连续占用数据库服务器资源,从而生成有高伸缩 性的应用程序。
表示层 DataSet 对象
数据访问层
数据层
数据库应用程序
SqlDataAdapter 对象 SqlDataAdapter 对象
SqlConnection 对象 SqlConnection 对象
数据库
数据库
20
【例8.1】在VB.NET项目中,创建一个和School数据库的 数据连接,然后创建数据集对象获取T_Grade表中的所 有数据,并在运行程序时通过窗体控件DataGridView显 示出来,运行结果窗体如图8.1.8所示。) 步骤一:添加新数据源
21
• 步骤二:选择数据源类型和数据库模式
22
• 步骤二:选择数据源类型和数据库模式
23
• 步骤三:设置连接数据源 • 步骤四: 选择数据库对象 • 步骤五:通过拖放数据源中的数据表建立 窗体控件与数据的关系.
13
8.2 数据库访问控件对象
访问数据库主要涉及以下控件对象:
• SqlConnection //数据库连接对象
• SqlCommand //执行Sql命令对象
• SqlDataAdapter //数据适配器对象,用于采
集数据并将数据送到客户端数据集DataSet中
• DataSet //数据集对象,一个数据集中可存 放多个表中内容
图8.1.5 SQL Server .NET Framework 数据提供程序和 OLE DB .NET Framework 数据提供程序的比 较
18
8.1.5 DataSet对象模型
在ADO.NET中,DataSet对象主要支持断开连接的、分布式数据的处理, 类似于一个驻留在内存中的关系数据库,表示一个完整的数据集。数据集 可以包含一个或多个表,这些表可以来源于一个数据库,也可以来源于多 个数据库。除了包含表,数据集还可以包含说明表之间关系的对象的数据 结构,即相关约束和表与表之间的联系。DataSet中的方法和对象与关系数 据库模型中的对象和方法是一致的。 •DataSet 包含一个或多个DataTable对象的集合,这些对象由数据行和数据 列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。 •每个 DataTable 对象中包含 DataRow 和 DataColumn 集合。 DataRow 中包含 一个元组的所有信息,保留着原始数据和任何改变的数据; DataColumn表 示属性列的信息。 •DataRelation对象存储关系表之间的联系信息,包括主键和外键之间的对 应关系。
•Dataset对象用 于在内存保存数 据库数据。 •独立于任何数 据源的数据访问。
图8.1.3
ADO.NET组件
9
8.1 数据库访问技术基本概念
说明:
1) Dataset是ADO.NET的断开式结构的核心 组件。它的设计目的:实现独立于任何数 据源的数据访问。 Dataset把数据以XML形式存放在客户 端的内存(不是服务器)。Dataset是与 数据源断开的,不知道数据提供者,无论 数据源是什么,它都会提供一致的关系编 程模型。
6
8.1 数据库访问技术基本概念
(2)采用XML作为数据交换的格式。XML是 跨平台存储和传输数据的工业标准格式, 用XML格式发送信息,可以让程序员很容 易将共享数据应用程序中的数据处理和用 户接口组件分离到不同服务器中,这对于 支持多用户的系统来说,可以较大程度地 提高系统的性能和可维护性。
7
14
8.2 数据库访问控件对象
• Datatable //数据表对象,查询结果即可送 入数据集Dataset,也可送入表Datatable。 • BindingMangerBase // “数据绑定管理器” 对象 • SqlDataReader //数据只读对象
15
1.Connection对象
•Connection对象用于在应用程序和数据库之间建立连接,要连接一个指定的数据源, 它是应用程序访问数据库的第一步。 •要连接Ms SQL Server需要使用SQL Server.NET数据提供程序的SQLConnection对 象;要连接OLE DB数据源,需要使用OLE DB.NET数据提供程序的 OleDbConnection对象。
4
8.1 数据库访问技术基本概念
• ADO(ActiveX Data Object):是在OLE DB的 上层,它进一步简化了数据访问编程。使得 应用程序访问数据库变得更加方便简单。 • ADO.NET采用ADO体系结构模型,并扩展 了功能。 • 本章重点介绍ADO.NET的对象模型功能以 及如何利用这些对象建立VB.NET与数据库 之间的数据访问功能。
• 数据层表示后台的数据库,主要完成数据的存储、 操纵和管理功能; • 表示层是前台的应用程序功能交互界面,为用户提 供基于数据查询和数据操作的业务功能服务; • 数据访问层ADO(ActiveX Data Object)介于数据 层和表示层之间,主要负责数据层与表示层之间的 数据访问和数据传输。。
Microsoft ODBC .NET 数据提供程序
Microsoft Oracle .NET 数据提供程序
Entity Client提供程序
使.NET应用程序可以访问 Oracle数据库
提供对实体数据模型(EDM) 应用程序的数据访问
System.Data.OracleCli ent
System.Data. Entity Client
12
8.1 数据库访问技术基本概念
表8.1.1 ADO.NET的5类数据提供程序
Microsoft SQL Server.NET 数据提供程序 Microsoft OLE DB .NET 数据提供程序 它使.NET应用程序可以直接 System.Data.SqlClient 访问Microsoft SQL Server 数据库 它使.NET应用程序可以使用 System.Data.OleDb 它们本机OLE DB提供程序 访问数据库(可以是不同的数 据源) 它使.NET应用程序可以通过 System.Data.Odbc 使用ODBC访问数据库
10
8.1 数据库访问技术基本概念
(2) .NET Framework数据提供程序:用于 实现对底层数据源的访问。组件包括: Connection、Command、DataAdapter 和DataReader对象。 ( Connection对象提供与数据源的连接。
Command对象执行数据库命令。 DataReader 从数据源中提供高性能的数据流。 DataAdapter 对象执行SQL命令,将数据采集来放 入Dataset对象中。 )
8.1 数据库访问技术基本概念 • ADO.NET组件
• 两个核心组件:Dataset和.NET数据提供程 序(Data Provider)
• Dataset对象用于保存数据, .NET数据提供 程序通过执行SQL命令或存储过程来存取数 据。
8
8.1 数据库访问技术基本概念
数据提供程序的功能: 建立DataSet 和数据库 的连接,保持两者之间 的数据一致性。 通过执行SQL命令或 存储过程来操作数据。
(1)连接字符串格式—SqlConnection
属性 Initial Catalog User ID Password 指定数据库名 用户帐户 用户密码 说明 Data Source 指定数据库服务器名称或位置
•例如:一个SqlConnection连接字符串的例子: Initial Catalog= School; DataSource=myServer; User ID=sa; password=; •如果是集成安全模式,SqlConnection连接字符串可简化为: Initial Catalog= School; DataSource=myServer; Integrated Security=SSPI;
第8章 ADO.NET数据库访问技术
本章主要内容:
ADO.NET体系结构; VB.NET与SQL Server数据库的连接; 数据库应用系统开发中的程序设计.
DB
数据库技术及应用
1
数据层
数据访问层
表示层 用户界面(窗体) VB.NET
数据库 SQL Server
图8.1.2
ADO.NET
ADO.NET对象模型的作用
11
8.1 数据库访问技术基本概念
• 在使用DataSet之前, 都是属于DataProvider的执 行范围, 也就是每家数据库厂商各自的存取方式, 所以用户必须选择合适的DataProvider对象。
• .NET Framework提供了五个数据提供程 序:它们分别为不同数据源提供数据访问 操作支持。如下表。
2
Baidu Nhomakorabea
8.1 数据库访问技术基本概念
1. 通用数据存取(Universal Data Access, UDA) : 为了实现“可从任意类型计算机上的任意 应用程序中访问任意类型的数据源”,微 软提出了UDA概念。而OLE DB和ODBC技 术就是这一概念的实现。
3
8.1 数据库访问技术基本概念
•UDA的关键是数据访问的透明性。即不管数 据在什么地方,数据的提供者可以是各种项 目,包括Oracle、 SQL Server数据库、 EXCEL、E-Mail、文件系统、消息库等等。 UDA通过提供简洁的数据访问层解决了异构 数据访问的问题。使程序员可以用统一的编 程接口,访问不同的数据源。不会因为数据源 的不同,而产生程序编写上的不同。
19
8.1.6 ADO.NET数据库访问的一般过程
1. ADO.NET数据库访问的一般过程 1)创建SqlConnection对象,建立数据库连接。 2)通过SqlCommand创建数据适配器SqlDataAdapter,建立数据库和数据集之间的 “桥”。 3)建立数据集DateSet。通过数据库与DataSet之间的桥SqlDataAdapter,编写程序 代码用于填充数据集和更新数据集。即将数据库中的数据填充到内存数据集DataSet 中;也可以通过SqlDataAdapter将更新过的DataSet中的数据回填到数据库中。 4)在VB.NET程序窗体上添加控件并设置其属性,使其和DataSet对象中的表和属 性列相关联。应用程序针对DataSet进行数据检索和数据更新操作。
17
5. SQLServer.NET数据提供程序 • SQLServer.NET数据提供程序使用Tabular Data Stream(TDS)和 SQL Server通信。由于TDS是SQL Server的本机通信协议,并经过了 优化,可以直接访问 SQL Server 而不用添加 OLE DB或开放式数据库 连接(ODBC)层,因此它是轻量的,并具有良好性能。 • 测试发现,SQLServer.NET数据提供程序的执行速度大约比OLE DB.NET数据提供程序快70%(图7-3)。
16
2.Command对象 与数据源建立连接后,可以直接通过Command对象与数据源进行交互访问。它为 ADO.NET的数据库数据访问带来了很大的灵活性。 3.DataReader对象 DataReader对象可以从数据库中获取一个只读、仅向前的数据流。使用 DataReader可以提高应用程序的性能,减少系统开销,因为在内存中每次只能有一 个缓冲行。 4.DataAdapter对象 DataAdapter对象主要是在数据源以及DataSet之间执行数据传输的工作。 DataAdapter对象用于获得数据源中的数据,填充DataSets;DataAdapter还可以将 DataSet产生的改变解析回数据源。它使用.NET数据提供程序中的Connection对象连 接数据源,使用Command对象获取数据源中的数据并填充到DataSet对象中,并将 DataSet对象中数据的变化写回数据源。
5
8.1 数据库访问技术基本概念
2. ADO.NET体系结构 • ADO.NET的主要技术特点 (1)支持断开连接模型。
• 断开连接模型是指一旦获得所需的数据,就断开 对数据源的连接,使用离线数据集继续在本机上 处理数据。优点是大大减少传输切断数据的开销, 保证应用程序不会太长时间持有数据库锁或持久 连续占用数据库服务器资源,从而生成有高伸缩 性的应用程序。
表示层 DataSet 对象
数据访问层
数据层
数据库应用程序
SqlDataAdapter 对象 SqlDataAdapter 对象
SqlConnection 对象 SqlConnection 对象
数据库
数据库
20
【例8.1】在VB.NET项目中,创建一个和School数据库的 数据连接,然后创建数据集对象获取T_Grade表中的所 有数据,并在运行程序时通过窗体控件DataGridView显 示出来,运行结果窗体如图8.1.8所示。) 步骤一:添加新数据源