ADO.NET基础

ADO.NET基础

前言

  • ADO.NET概述

ADO.NET是微软公司提供的一款数据库访问技术,是在.NET Framework中负责数据访问的类库集。它提供了一系列的方法支持对Microsoft SQL Server和XML等数据源进行访问。可以将ADO.NET比喻为数据库应用程序和数据员之间的桥梁。它提供了一个面向对象的数据访问架构。

  • ADO.NET优势

可以在数据源完全断开链接的情况下,对数据进行更新修改,再将数据的更新情况返回至数据源。从而减少了由于数据库链接过多而引起服务器资源被占用的情况。

ADO.NET支持多层应用程序的开发,在多层体系架构中相邻层之间需要传递数据,ADO.NET针对此场景的解决方案为使用XML格式表示内存数据,也称为数据集。然后将数据以XML格式进行发送

  • XML格式

XML格式是一种通用格式,可以被多种数据结构接受并可穿越防火墙。

因此ADO.NET就具有了跨平台和良好的交互性。

一、ADO.NET体系

1.ADO.NET体系结构

在ADO.NET中,用于访问和操作数据库的两个主要组件是.NET Framework数据提供程序和数据集DataSet

(1).NET Framework数据提供程序

.NET Framework数据提供程序是专为数据操作设计的组件,用于处理不同的数据源。支持访问特定数据库,执行SQL命令和检索结果。

在.NET中主要提供了三类数据提供程序

.NETFramework数据提供程序说明
SQL Server .NET Framework数据提供对Microsoft SQL Server中的数据访问,使用System.Data.SqlClient命名空间
OLE DB .NET Framework数据提供程序提供对使用OLE DB公开的数据源(如:Access、Excel等)中数据的访问,使用System.Data.oleDb 命名空间
ODBC .NET Framework数据提供程序提供对使用ODBC公开的数据源中数据的访问,使用System.Data.Odbc命名空间

.NET Framework数据提供程序包含了四个核心对象

对象说明
Connection建立与特定数据源的连接
Command对数据源执行命令
DataReader从数据源中读取只进只读的数据流
DataAdapter使用数据源填充DataSet并支持更新
(2)数据集DataSet

DataSet是专为独立与所有数据源的数据访问而设计的。它在支持ADO.NET的断开式,分布式数据方案中其至关重要的作用。

DataSet包含一个或多个DataTable对象的集合。DataTable对象由数据行和数据列以及数据的主外键、约束和关系信息组成。如下图所示:

在这里插入图片描述

也可以将DataSet视作为一个临时数据库,而DataTable可以视作是临时数据库中的临时表。一个数据库中可以有很多个表,这也就对应了DataSet数据集包含一个或多个DataTable,而DataTable由数据行、列以及数据主外键。约束和关系信息组成这个定义。

2.ADO.NET操作方式

ADO.NET有两种操作数据库的方式

  • 非断开式访问
  • 断开式访问

非断开式访问在整个操作过程中需要保持数据库链接

断开式访问只需在执行数据库命令时保持数据库链接,命令执行完毕后将查询到的数据缓存至内存,此时断开数据库连接,在内存中获取数据即可。

ADO.NET访问数据库流程如下图所示

在这里插入图片描述

(1)非断开式访问流程

需使用Connection对象、Command对象以及DataReader对象进行数据库交互操作

  • 对数据库数据进行更改,例如Insert、Delete、Update或执行聚合函数命令等,操作流程如下:

1.创建数据库对象Connection并打开连接

2.创建命令对象Command

3.执行相应SQL命令

4.关闭数据库链接

流程图如下:

在这里插入图片描述

  • 对数据库进行查询操作流程如下:

1.创建Connection对象并打开数据库链接

2.创建命令对象

3.执行SQL命令的查询命令Select并创建DataReader对象

4.使用while循环读取DataReader对象中的数据

5.关闭DataReader对象

6.关闭数据库链接

流程图如下:

在这里插入图片描述

(2)断开式访问流程

需使用Connection对象、DataAdapter对象以及DataSet对象进行数据库交互操作

操作流程如下:

1.创建数据库连接对象Connection

2.创建数据适配对象DataAdapter,指定Select命令和Connection对象。

3.创建数据集DataSet对象,用于在内存中缓存数据

4.使用DataAdapter对象将查询到的数据填充至DataSet数据集中

5.更新DataSet中的数据

6.使用DataAdapter对象将DataSet对象中的数据回传至数据库中

流程图如下

在这里插入图片描述

3.ADO.NET操作数据库原理

在这里插入图片描述

由上图所示,上图中是一个简易的抽水装置,整体结构实现的需求就是将下游的水抽到上游的水池中进行存储

将.NET数据提供对象带入至上图中的结构流程的话:

数据源即使图中的水源,是整体结构不可或缺的对象。如果没有水源,那么整体结构都会失去效用无法运转

图中的抽水口,则对应了.NET数据提供对象中的Connection对象,只有它与水保持接触连接,其他对象才可以抽到水,也就是正常运转

.NET数据提供对象中的Command对象,则与上图中的抽水机类似,它为抽水提供动力和执行方法,将水提供至上面的输水管。也就是说Command在程序中为整体数据交互提供动力,也就是执行SQL命令。

而DataAdapter对象和DataReader对象类似于图中的输水管,担任着水的传输任务。DataAdapter对象,是通过发动机的动力,将抽上来的水送至水池中进行缓存,在程序中就是通过SQL命令将执行的结果输送至DataSet数据集中进行缓存。

DataReader对象与DataAdapter对象不同,它不将水输送至水池,而是直接单向将水输送至需要用水的人手里。所以DataReader比DataAdapter的速度更快

池中进行缓存,在程序中就是通过SQL命令将执行的结果输送至DataSet数据集中进行缓存。

DataReader对象与DataAdapter对象不同,它不将水输送至水池,而是直接单向将水输送至需要用水的人手里。所以DataReader比DataAdapter的速度更快

DataSet对象,则是上图中的水池,从水源抽上来的水全部存储在水池中,即使将抽水装置停掉,但抽上来的水依旧在水池中存储着,依旧可以保持水的供应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值