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指南中的开始。对于没有经验的开发者开说,也许本课某些概念比较抽象,没有关系,我们将会在后续课程中详细展开。我们将在下一课里深入学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。   在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的ADO,称为ADO.NET。其对象模型和传统ADO差别很大。 ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口??远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。   ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。   ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值