`

ADO.NET入门教程连载(第一课: ADO.NET介绍)

阅读更多
 

           第一课: ADO.NET介绍

本节将介绍ADO.NET的一些基本概念,您将在后面章节进一步了解它们。通过本节,您将了解ADO.NET,并且理解data provider,connection对象、command对象、DataReader对象、DataSet对象以及DataAdapter对象。对于没有经验的开发者开说,也许本课某些概念比较抽象,没有关系,我们将会在后续课程中详细展开。

介绍

ADO.NET是一组访问数据源的面向对象的类库。简单的理解,数据源就是数据库,它同时也能够是文本文件、Excel表格或者XML文件。本教程将以SQL Server 2000 / 2005为示例数据库服务器,Northwind为示例数据库。

Data Providers

我们需要与不同类型的数据源或者数据库交互。然而,并没有这样的一组类库可以达到这个目的,因为各个数据源的协议各不相同,我们需要通过正确的协议来访问数据源。有些比较老的数据源用ODBC协议,其后的一些数据源用OleDb协议,现在,仍然还有许多新的数据源在不断出现。使用ADO.NET类库,你可以直接访问所有的数据源。

ADO.NET提供了访问数据源的公共方法,对于不同的数据源,它采用不同的类库。这些类库称为Data Providers,并且通常是以数据源的类型以及协议来命名的。表1列出了常见的一些data providers,以及它们所使用的API前缀和交互的数据源类型。

1.  ADO.NET Data Providers是一组提供访问指定数据源的基本类库。API的开头字符表明了他们支持的协议。

Provider

API 前缀

数据源描述

ODBC Data Provider

Odbc

提供ODBC接口的数据源。一般是比较老的数据库。

OleDb Data Provider

OleDb

提供OleDb接口的数据源,比如Access或Excel。

Oracle Data Provider

Oracle

Oracle数据库

SQL Data Provider

Sql

Microsoft SQL Server数据库

Borland Data Provider

Bdp

通用的访问方式能访问许多数据库,比如Interbase、SQL Server、IBM DB2和Oracle。

我们举一个实际的例子来理解表格中的API前缀。在这里你将学习到的第一个ADO.NET对象是连接对象(connection object),顾名思义,你可以通过它建立与数据源的连接。如果我们使用OleDb Data Provider连接一个提供OleDb接口的数据源,那么我们将使用连接对象就是OleDbConnection。同理,如果连接Odbc数据源或者SQL Server数据源就分别加上Odbc或者Sql前缀,即OdbcConnection或SqlConnection。在本教程里使用的是数据源是SQL Server,所以你会发现所有的API对象都带有Sql前缀,比如SqlConnection。

ADO.NET对象

ADO.NET里包括了许多专门用于和数据打交道的对象。这一节介绍了一些最常用的对象。这些对象是学习ADO.NET必须了解的。掌握它们后你将了解使用ADO.NET和数据打交道会需要考虑哪些事情。

The SqlConnection Object

要访问一个数据源,你必须先建立一个到它的连接。这个连接里描述了数据库服务器类型、数据库名字、用户名、密码,和连接数据库所需要的其它参数。command对象通过使用connection对象来知道是在哪个数据库上面执行SQL命令。

The SqlCommand Object

连接数据库后就可以开始想要执行的数据库操作,这个是通过command对象完成,command对象一般被用来发送SQL语句给数据库。command对象通过connection对象得知道应该与哪个数据库进行连接。我们既可以用command对象来直接执行SQL命令,也可以将一个command对象的引用传递给SqlDataAdapter,SqlDataAdapter能包含一系列的command对象,可以处理大量数据,请见下面描述。

The SqlDataReader Object

根据经验,许多数据库操作要求我们仅仅只是需要读取一组数据。这时候就用到了data reader对象。通过data reader对象,我们可以获得从command对象的SELECT语句得到的结果。考虑到性能方面的因素,data reader返回的数据流被设计为只读的、单向的,这将意味着你只能按照一定的顺序从数据流中取出数据。虽然你在这里也获得了性能上的提升,但是缺点也是明显的,不能够操作取回数据,如果需要操作编辑数据,解决的办法是使用DataSet。

The DataSet Object

DataSet对象用于表示那些储存在内存中的数据。它包括多个DataTable对象,DataTable就象一个普通的数据库中的表一样,也有行和列,我们甚至能够通过定义表和表之间的关系来创建从属关系。DataSet主要用于管理存储在内存中的数据以及对数据的断开操作。注意,由于DataSet对象能被所有Data Providers使用,它不需要指定前缀。

The SqlDataAdapter Object

某些时候我们只需要读数据,并且你不需要修改它们把更改写回数据源。但是还有这样一些情况为了减少数据库调用的次数,我们把数据缓存在内存中。Data adapter通过断开模型来轻松的实现了后面这种情况的处理。当批量完成的对数据库的读写操作的并将改变写回数据库的时候,data adapter 会填充(fill)DataSet对象。data adapter里包含了connection对象,当对数据源进行读取或者写入的时候,data adapter会自动的打开或者关闭连接。此外,data adapter还包含对数据的SELECT,INSERT,UPDATE和DELETE操作的command对象引用。如果我们为DataSet中的每一个table都指定data adapter,它将会帮你处理好所有与连接处理数据库的操作,我们所需要做的仅仅就是告诉data adapter什么时候读取或者写入到数据库。  

总结

ADO.NET是用于和数据源打交道的.NET技术。它包含了许多的Data Providers,分别用于访问不同的数据源――取决于它们所使用的数据库或者协议。然而无论使用什么样的Data Provider,与数据源进行交互的的对象的使用方法都是相似的。SqlConnection对象用于管理与数据源的连接。SqlCommand对象可以向数据源发送SQL命令。SqlDataReader可以快速的从数据源获得只读的,向前的数据流。使用DataSet可以处理那些已经断开的数据(储存在内存中的),并通过SqlDataAdapter实现数据源的读取和写入。

这仅仅只是本系列ADO.NET指南中的开始。对于没有经验的开发者开说,也许本课某些概念比较抽象,没有关系,我们将会在后续课程中详细展开。我们将在下一课里深入学习

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics