数据库-ADO.NET的结构

 

1          ADO.NET结构

1.1         相关的名字空间

1.1.1   System.Data 这是最主要的数据相关名字空间,其下包括两个相关名字空间

l        System.Data.OleDB

l        System.Data.SqlClient

1.1.2   .NET数据提供者

它允许你连接到数据源, 对数据源执行一组命令, 并根据命令获取结果.

1.1.3   .NET架构中有两个.NET数据提供者

OLE DB .NET数据提供者能连接到OLEDB数据源

SQL SERVER .NET数据提供者能连接到SQL SERVER

1.1.4   System.Data.OleDB

包含OLEDB .NET数据提供者所使用的类. 这些类以OleDB开头

1.1.5   System.Data.SqlClient

包含SQL SERVER数据提供者使用的类, SQL开头

2          ADO.NET组件

ADO.NET提供两个主要的组件: 数据集和.NET数据提供者

2.1         数据集

ADO.NET的数据集支持断开连接方式的分布式数据方案

数据集是一个集合,包含了来自一个数据源的一个或多个表或者记录, 以及其间的关系的信息. DataSetADONET的核心, 是数据在内存中的副本.

数据集包含了表, , , 约束, 以及表间的关系.它可以有多个表,用关系将表进行连接

可以在DataSet中创建数据的DataView.再用DataView特性将控件绑定到DataSet中的值.(指定控件从哪个DataTable获得数据-DataTableDataView);

DataSet使用XML传输数据

DataSet类表示ADO.NET的数据集, 存储在System.Data名字空间

数据集中的对象列表

对象

描述

DataSet

表示内存中的虚拟的, 本地的关系数据库,用于临时存储数据

DataTable

表示数据集中数据位于内存的表.

该对象以行和列的形式包含了数据

DataRow

表示包含了DataTable对象中的数据的一行

DataColumn

表示DataTable对象中的一个列模式

DataRelation

表示两个DataTable对象之间存在的关系

Constraint

表示对一个或多个DataColumn对象的约束

2.2         .NET数据提供者

数据提供者是担当应用程序和数据源之间的桥的角色, 用来与数据源建立连接, 执行一组命令, 以及获取结果, 取得结果并处理之后, 需要再次使用提供者在数据源中更新修改

2.2.1   .NET数据提供者的四个核心组件

l        Connection对象

用于连接到数据库. 建立并管理数据库的连接.

Connnection对象上的Open方法打开它或在用DataAdapter时隐式使用它

l        Command对象

Command对象通过Connection对象传递参数并对数据存储执行命令,再将数据返回到DataReader或DataSet

l        DataReader对象

DataReader对象从数据库读取只读/只向前的数据流,并与Command和Connection对象联合使用.

在任意给定的时间点, DataReader只允许将一行数据存储在内存中. 这有利于减少系统开销,它比用DataSet的速度快.

不过要注意在使用时保持到数据存储的连接处于活动状态,并要求你必须在结束时关闭DataReader对象

l        DataAdapter对象

DataAdapter用于与填充DataSet的数据库通信.它配合Connection和Command对象从数据存储中检索数据; DataAdapter也能将内存DataSet中的本地修改后数据存回其基本数据存储.

如何将所作的修改存回到数据存储中,这时应该使用DataAdapter

这时的DataAdapter如何工作?(这里要求不要调用DataSet的AcceptChanges方法)

基本流程:

ü        指定DataAdapter的SelectCommand/InsertCommand/UpdataCommand和DeleteCommand

ü        使用DataAdapter从数据库检索数据,并填充DataSet

ü        允许用户或系统对DataSet进行修改

ü        调用GetChanges方法只使用已更新的基本数据存储中的已修改过的值来填充DataSet(或者说,该方法的可选参数RowState,不指定,就会返回所有改过的行)

ü        调用DataAdapter的Update方法,并在参数中传递包含修改值的DataSet

n        对于插入操作,会用InsertCommand属性值

n        对于更新,会用UpdateCommand属性值

n        对于删除,会用DeleteCommand属性值

实际情况是ADONET会根据需要自动调用适当的命令

注意: DataAdapter不仅可以在数据集和数据库间传输数据

       也可以在数据集和其他一些数据源, 比如Microsoft Exchange SERVER, 之间传输

2.2.2   .NET数据提供者的类型

有两种:

l        OLE DB

允许通过COM的互操作性进行数据访问

它可以使用几种OLEDB提供者, 例如

n        SQLOLEDB

n        MSDAORA

n        Microsoft.Jet.OLEDB.4.0

但它不支持MSDASQL, 因为这个是面向ODBC

2.2.2.1.1  OLEDB.NET数据提供者类(存储在System.Data.OleDB名字空间)

描述

OleDbConnection

表示到数据源的打开连接

OleDbCommand

表示可以对数据源执行的SQL语句或存储过程

OleDbDataReader

提供了一种方法, 可以用只向前的模型从数据源读取数据

OleDbDataAdapter

表示数据命令和数据库连接, 可以用来将数据在数据源和数据集之间双向传递

OleDbError

对应于数据源所返回的错误或警告的编译信息

OleDbException

表示当OLEDB数据源返回错误或警告是所引发的异常

OleDbPermission

允许OLEDB提供者验证用户是否拥有足够的安全性权限, 来获取数据源的访问权限

OleDbTransaction

表示数据源的SQL事务

 

l        SQL SERVER

它是专门针对Microsoft SQL SERVER, 为实现这一点, 它使用了TDS(表格式数据库)协议

2.2.2.1.2  SQL SERVER .NET数据提供者类(存储在System.Data.SqlClient名字空间)

描述

SqlConnection

表示到数据源的打开连接

SqlCommand

表示可以对SQL SERVER执行事务SQL语句或存储过程

SqlDataReader

提供一种方法, 用只向前模型读取数据

SqlDataAdapter

表示数据命令,SQLSERVER数据库和数据集之间传递数据

SQLError

 

SQLException

 

SqlTransaction

事务

3          ADO.NETXML

ADO.NET内置XML支持

ADO.NET只提供了显示和隐式XML支持

ADO.NET使用XML作为存储和传输数据的内部格式

这样有两个有点:

l        有利于不同应用程序交换数据

l        数据可以通过不同的协议和防火墙

XML以数据集的形式与ADO.NET集成在一起

l        可以用xml将数据从数据源传到数据集

l        或从数据集传送到组件

l        数据集也可以访问xml文件中的数据

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值