ADO.NET组件学习笔记

ADO.NET用于访问和操作数据的两个主要组件时.NET Framework数据提供程序和DataSet

.NET Framework数据提供程序

.NET Framework数据提供程序是专门为数据操作以及快速,只进,只读访问数据而设计的组件.

Connection对象提供到数据源连接.

使用Command对象可以访问用于返回数据,修改数据,运行存储过程以及发送或检索参数信息的数据库命令

DataReader可从数据源提供高性能的数据源.

DataAdapter在DataSet对象和数据源之间起桥梁作用

DataAdapter使用Command对象在数据源中执行SQL命令以向DataSet中加载数据,并将对DataSet中数据的更改协调回数据源

DataSet

ADO.NET DataSet是专门独立于任何数据源的数据访问而设计的.因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据.DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键,外键,约束和关系信息组成.

如下图

使用DataSet可执行以下操作:

  1. 在应用程序中将数据缓存在本地,以便可以对数据进行处理.
  2. 在层间或XML Web services对数据进行远程管理
  3. 与数据进行动态交互
  4. 对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用.

通过DataReader以只进,只读方式返回数据,从而提高应用程序的性能;

.NET Framework中包含的数据提供程序

.NET Framework数据提供程序

说明

用于SQL Server的.NET Framework数据访问接口

提供Microsoft SQL Server的数据访问.使用

System.Data.SqlClient命名空间

用于OLE DB的.NET Framework数据提供程序

提供对使用OLE DB公开的数据源中数据的访问.使用System.Data.OleDb命名空间

用于ODBC的.NET Framework数据提供程序

提供对ODBC公开的数据源中数据的访问.使用System.Data.Odbc命名空间

用于Oracle的.NET Framework数据提供程序

适用于Oracle数据源.用于Oracle的.NET Framework数据提供程序支持Oracle客户端软件8.1.7和更高版本,并使用System.Data.OracleClient命名空间

EntityClient提供程序

提供对实体数据模式(EDM)应用程序的数据访问.使用System.Data.EntityClient命名空间

用于SQL Server Compact4.0的.NET Framework数据提供程序

提供Microsoft SQL Server Compact 4.0的数据访问.使用System.Data.SqlServerCe命名空间

.NET Framework数据提供程序的四个核心对象

对象

说明

Connection

建立与特定数据源的连接.所有Connection对象的基类均为DbConnection类

Command

对数据源执行命令.公开Parameters,并可在Transaction范围内从Connection执行.所有Command对象的基类均为DbCommand类

DataReader

从数据源中读取只进且只读的数据流.所有DataReader对象的基类均为DbDataReader类

DataAdapter

使用数据源填充DataSet并解决更新.所有DataAdapter对象的基类均为DbDataAdapter类

对象

说明

Transaction

将命令登记在数据源处的事务中。 所有 Transaction 对象的基类均为 DbTransaction 类。 ADO.NET 还使用 System.Transactions 命名空间中的类提供对事务的支持。

CommandBuilder

一个帮助器对象,它自动生成 DataAdapter 的命令属性或从存储过程中派生参数信息,并填充 Parameters 对象的 Command 集合。 所有 CommandBuilder 对象的基类均为 DbCommandBuilder 类。

ConnectionStringBuilder

一个帮助器对象,它提供一种用于创建和管理由 Connection 对象使用的连接字符串的内容的简单方法。 所有 ConnectionStringBuilder 对象的基类均为 DbConnectionStringBuilder 类。

Parameter

定义命令和存储过程的输入、输出和返回值参数。 所有 Parameter 对象的基类均为 DbParameter 类。

Exception

在数据源中遇到错误时返回。 对于在客户端上遇到的错误,.NET Framework 数据提供程序将引发 .NET Framework 异常。 所有 Exception 对象的基类均为 DbException 类。

Error

公开数据源返回的警告或错误中的信息。

ClientPermission

为 .NET Framework 数据提供程序代码访问安全属性而提供。 所有 ClientPermission 对象的基类均为 DBDataPermission 类。

下表显示了推断的 .NET Framework 类型、DbType 和 SqlDbType 枚举以及 SqlDataReader 的访问器方法。

SQL Server 数据库引擎类型

.NET Framework 类型

SqlDbType 枚举

SqlDataReader SqlTypes 类型化访问器

DbType 枚举

SqlDataReader DbType 类型化访问器

bigint

Int64

BigInt

GetSqlInt64

Int64

GetInt64

binary

Byte[]

VarBinary

GetSqlBinary

Binary

GetBytes

bit

布尔

Bit

GetSqlBoolean

Boolean

GetBoolean

char

String

Char[]

Char

GetSqlString

AnsiStringFixedLength,

String

GetString

GetChars

date 1

(SQL Server 2008 及更高版本)

DateTime

DateDate

GetSqlDateTime

DateDate

GetDateTime

datetime

DateTime

DateTime

GetSqlDateTime

DateTime

GetDateTime

datetime2

(SQL Server 2008 及更高版本)

DateTime

DateTime2

DateTime2

GetDateTime

datetimeoffset

(SQL Server 2008 及更高版本)

DateTimeOffset

DateTimeOffset

DateTimeOffset

GetDateTimeOffset

Decimal

小数

Decimal

GetSqlDecimal

Decimal

GetDecimal

FILESTREAM attribute (varbinary(max))

Byte[]

VarBinary

GetSqlBytes

Binary

GetBytes

FLOAT

Double

Float

GetSqlDouble

Double

GetDouble

image

Byte[]

Binary

GetSqlBinary

Binary

GetBytes

int

Int32

Int

GetSqlInt32

Int32

GetInt32

money

小数

Money

GetSqlMoney

Decimal

GetDecimal

nchar

String

Char[]

NChar

GetSqlString

StringFixedLength

GetString

GetChars

ntext

String

Char[]

NText

GetSqlString

String

GetString

GetChars

numeric

小数

Decimal

GetSqlDecimal

Decimal

GetDecimal

nvarchar

String

Char[]

NVarChar

GetSqlString

String

GetString

GetChars

real

Single

Real

GetSqlSingle

Single

GetFloat

rowversion

Byte[]

Timestamp

GetSqlBinary

Binary

GetBytes

smalldatetime

DateTime

DateTime

GetSqlDateTime

DateTime

GetDateTime

smallint

Int16

SmallInt

GetSqlInt16

Int16

GetInt16

smallmoney

小数

SmallMoney

GetSqlMoney

Decimal

GetDecimal

sql_variant

Object 2

Variant

GetSqlValueGetSqlValue

Object

GetValueGetValue

text

String

Char[]

Text

GetSqlString

String

GetString

GetChars

time

(SQL Server 2008 及更高版本)

TimeSpan

Time

Time

GetDateTime

timestamp

Byte[]

Timestamp

GetSqlBinary

Binary

GetBytes

tinyint

Byte

TinyInt

GetSqlByte

Byte

GetByte

uniqueidentifier

Guid

UniqueIdentifier

GetSqlGuid

Guid

GetGuid

varbinary

Byte[]

VarBinary

GetSqlBinary

Binary

GetBytes

varchar

String

Char[]

VarChar

GetSqlString

AnsiStringString

GetString

GetChars

xml

Xml

Xml

GetSqlXml

Xml

连接事件:InfoMessage与StateChange

事件

描述

InfoMessage

当从数据源中返回消息性消息时发生.消息性信息时数据源中不会引发异常的消息

StateChange

当Connection的状态更改时发生

连接池

连接到数据源可能需要很长时间,为了最大程度的降低打开连接的成本,ADO.NET使用一种称为”连接池”的优化技术,这种技术可最大程度的降低重复打开和关闭连接所造成的成本;

清除池

ADO.NET 2.0引用了两种新方法来清除池:ClearAllPools和ClearPool.ClearAllPools清除指定程序的连接池,ClearPool清除与特定连接关联的连接池.如果在调用时连接正在使用,将对它们进行相应的标记,连接关闭时,将被丢弃,而不是返回池中;

CommandType枚举 规定CommandText属性的方式

CommandType

描述

Text

定义要在数据源处执行的语句的SQL命令

StoredProcedure

存储过程的名称.可以使用某一命令的Parameters属性访问输入和输出参数,并返回值(无论调用哪种Execute方法).当使用ExecuteReader时,在关闭DataReader后才能访问返回值和输出参数

TableDirect

表的名称

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值