日期:2013-10-17  浏览次数:20473 次


    概述:

    本文在微软站点资源的基础上加工整理而成,意在引见在你的ADO.NET使用程序中执行和完成功用优化、稳定性和功用性方面提供最佳的处理方案;同时也包含在ADO.NET中运用已有的数据对象进行开发的最佳实践和协助你怎样设计ADO.NET使用程序提供建议。

    本文包含以下内容:

    1..NET框架中的data providers;

    2.对照DataSet和DataReader,分别引见他们的最佳用途;

    3.如何使用DataSet、Commands和Connections;

    4.结合XML;

    5.如果你是ADO程序员,也不妨看看ADO.NET与ADO的区别和联系;

    6.结合一些FAQ,更深一步讨论ADO.NET观点和使用技巧。

    引见:

    A..NET框架中的data providers

        Data providers在使用程序和数据库之间扮演一个桥梁的角色,它使得你可以从一个数据库前往查询结果、执行命令以及对数据集的更新等。

    B.几种data provider的引见

        下面表格中数据表明各种data provider以及最佳适用数据库对象

提供者

描述

SQL Server.NET Data Provider

在.NET框架中使用System.Data.SqlClient命名空间;

建议在两头层使用程序中使用SQL Server7.0或当前版本;

建议在独立的使用程序中使用MSDE或SQL Server7.0或更高版本;

SQL Server6.5或更早版本,必须使用OLE DB.NET Data Provider中的OLE DB Provider For SQL Server。

OLE DB.NET Data Provider

在.NET框架中使用System.Data.OleDb命名空间;

建议在两头层使用程序中使用SQL Server6.5或以前版本,或者任何在.NET框架SDK中指出的支持OLE DB接口清单的OLE DB Provider,OLE DB接口清单将在后面列出;

建议在独立的使用程序中使用Access,两头层使用程序不建议使用Access;

不再支持为ODBC的OLE DB Provider,要访问ODBC,使用ODBC.NET Data Provider。

ODBC.NET Data Provider

在.NET框架中使用System.Data.Odbc命名空间;

提供对使用ODBC驱动连接的数据库的访问;

.NET Data Provider For Oracle

在.NET框架中使用System.Data.OracleClient命名空间;

提供对Oracle数据库的访问。

Custom.NET Data Provider

提供一套接口,让你可以自定义一个Data Provider;

SQLXML Managed Classes

包含SQLXML Managed Classes的最新版SQLXML3.0,使得你可以访问SQL Server2000或当前版本的XML功用性扩展,比如执行XML模板文件、执行XPath查询和使用Updategrams或Diffgrams更新数据等;在SQLXML 3.0中存储过程和XML模板将会通过SOAP作为一种WEB服务。

        表格中提到的OLE DB接口清单,在这里把它列出

OLE DB 对象

接口

OLE DB Services

IdataInitilize

DataSource

IDBInitialize
IDBCreateSession
IDBProperties
IPersist
IDBInfo*

Session

ISessionProperties
IOpenRowset
IDBSchemaRowset*
ITransactionLocal*
IDBCreateCommand*

Command

IcommandText
ICommandProperties
ICommandWithParameters*
IAccessor (only required if ICommandWithParameters is supported)
ICommandPrepare*

MultipleResults

ImultipleResults

RowSet

Irowset
IAccessor
IColumnsInfo
IColumnsRowset*
IRowsetInfo (only required if DBTYPE_HCHAPTER is supported)

Row

IRow*

Error

IerrorInfo
IErrorRecords
ISQLErrorInfo*

    C.连接SQL Server7.0或更高版本

        使用SQL Server.NET Data Provider连接SQL Server7.0或更高版本是最好的方式,在于它建立与SQL Server的直接连接而两头不需求任何的技术层衔接。如下图一展现了各种访问SQL Server7.0或更高版本的技术比较:



图一(连接访问SQL Server7.0或更高版本的各种技术比较)

        以下例子演示怎样创建和打开一个到SQL Server7.0或更高版本数据库的连接:

‘Visual Basic

Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;" & _                                                   "Initial Catalog=northwind")

nwindConn.Open()

‘C#

SqlConnection nwindConn = new SqlConnection("Data Source=localhost; Integrated Security=SSPI;" +

"Initial Catalog=northwind");

nwindConn.Open();

    D.连接ODBC数据源

 &nb