Share via


.Fournisseurs de données .NET Framework (ADO.NET)

Mise à jour : November 2007

Un fournisseur de données .NET Framework est utilisé pour la connexion à une base de données, l'exécution de commandes et l'extraction de résultats. Ces résultats sont traités directement, placés dans un DataSet pour être exposés à l'utilisateur selon les besoins, associés à des données issues de plusieurs sources, ou exécutés à distance entre des couches. Les fournisseurs de données .NET Framework sont légers et créent une couche minimale entre la source des données et le code, et augmentent les performances sans nuire aux fonctionnalités.

Le tableau suivant répertorie les fournisseurs de données inclus dans le .NET Framework.

Fournisseur de données .NET Framework

Description

.NET Framework Fournisseur de données pour SQL Server

Fournit un accès aux données pour Microsoft SQL Server version 7.0 ou ultérieure. Utilise l'espace de noms System.Data.SqlClient.

.NET Framework Fournisseur de données pour OLE DB

Pour les sources de données exposées à l'aide de OLE DB. Utilise l'espace de noms System.Data.OleDb.

.NET Framework Fournisseur de données pour ODBC

Pour les sources de données exposées à l'aide de ODBC. Utilise l'espace de noms System.Data.Odbc.

.NET Framework Fournisseur de données pour Oracle

Pour les sources de données Oracle. Le fournisseur de données .NET Framework pour Oracle prend en charge le logiciel client Oracle version 8.1.7 et ultérieure, et utilise l'espace de noms System.Data.OracleClient.

Fournisseur EntityClient

Fournit un accès aux données pour les applications EDM (Entity Data Model). Utilise l'espace de noms System.Data.EntityClient.

Objets principaux des fournisseurs de données .NET Framework

Le tableau suivant présente les quatre principaux objets qui composent un fournisseur de données .NET Framework.

Objet

Description

Connection

Établit une connexion à une source de données spécifique. La classe de base pour tous les objets Connection est la classe DbConnection.

Command

Exécute une commande sur une source de données. Expose Parameters et peut exécuter dans la portée d'une Transaction à partir d'un Connection. La classe de base pour tous les objets Command est la classe DbCommand.

DataReader

Lit un flux de données avant uniquement (forward only) et en lecture seule à partir d'une source de données. La classe de base pour tous les objets DataReader est la classe DbDataReader.

DataAdapter

Remplit un DataSet et répercute les mises à jour dans la source de données. La classe de base pour tous les objets DataAdapter est la classe DbDataAdapter.

En plus des principales classes répertoriées dans le tableau précédemment dans ce document, un fournisseur de données .NET Framework contient également les classes répertoriées dans le tableau suivant.

Objet

Description

Transaction

Inscrit des commandes dans des transactions au niveau de la source de données. La classe de base pour tous les objets Transaction est la classe DbTransaction. ADO.NET fournit aussi la prise en charge pour les transactions à l'aide des classes dans l'espace de noms System.Transactions.

CommandBuilder

Objet d'assistance qui génère automatiquement les propriétés de commande d'un DataAdapter ou dérive les informations sur les paramètres à partir d'une procédure stockée et remplit la collection Parameters d'un objet Command. La classe de base pour tous les objets CommandBuilder est la classe DbCommandBuilder.

ConnectionStringBuilder

Objet d'assistance qui offre une manière simple de créer et de gérer le contenu de chaînes de connexion utilisées par les objets Connection. La classe de base pour tous les objets ConnectionStringBuilder est la classe DbConnectionStringBuilder.

Parameter

Définit les paramètres des valeurs d'entrée, de sortie et de retour pour les commandes et les procédures stockées. La classe de base pour tous les objets Parameter est la classe DbParameter.

Exception

Retourné en cas d'erreur au niveau de la source de données. En cas d'erreur côté client, les fournisseurs de données .NET Framework lèvent une exception .NET Framework. La classe de base pour tous les objets Exception est la classe DbException.

Error

Expose les informations provenant d'un avertissement ou d'une erreur retournée par une source de données.

ClientPermission

Fourni pour les attributs de sécurité d'accès du code du fournisseur de données .NET Framework. La classe de base pour tous les objets ClientPermission est la classe DBDataPermission.

.Fournisseur de données .NET Framework pour SQL Server (SqlClient)

Le fournisseur de données .NET Framework pour SQL Server (SqlClient) utilise son propre protocole pour communiquer avec SQL Server. Il est léger et ses performances sont élevées car il est optimisé de façon à accéder directement à SQL Server, sans ajout d'une couche OLE DB ou ODBC (Open DataBase Connectivity). L'illustration suivante compare le fournisseur de données .NET Framework pour SQL Server avec le fournisseur de données .NET Framework pour OLE DB. Le fournisseur de données .NET Framework pour OLE DB communique avec une source de données OLE DB à la fois par l'intermédiaire du composant de service OLE DB, qui assure le regroupement de connexion et les services de transactions, et par le biais du fournisseur OLE DB de la source de données.

Remarque :

Le fournisseur de données .NET Framework pour ODBC présente une architecture similaire à celle du fournisseur de données .NET Framework pour OLE DB ; par exemple, il appelle un composant de service ODBC.

Comparaison du fournisseur de données dnprdnshort pour ssNoVersionr avec le fournisseur de données dnprdnshort pour OLE DB

Fournisseurs de données

Pour utiliser le fournisseur de données .NET Framework pour SQL Server,vous devez avoir accès à SQL Server versions 7.0 ou versions ultérieures. Les classes du fournisseur de données .NET Framework pour SQL Server sont situées dans l'espace de noms System.Data.SqlClient. Pour les versions antérieures de SQL Server, utilisez le fournisseur de données .NET Framework pour OLE DB avec le fournisseur de données OLE DB SQL Server System.Data.OleDb.

Le fournisseur de données .NET Framework pour SQL Server prend en charge les transactions locales et distribuées. Pour les transactions distribuées, le fournisseur de données .NET Framework pour SQL Server s'inscrit automatiquement par défaut dans une transaction et obtient des détails de transaction des services de composants Windows ou System.Transactions. Pour plus d'informations, voir Transactions et concurrence (ADO.NET).

L'exemple de code suivant montre comment inclure l'espace de noms System.Data.SqlClient dans vos applications.

Imports System.Data.SqlClient
using System.Data.SqlClient;

.Fournisseur de données .NET Framework pour OLE DB

Le fournisseur de données .NET Framework pour OLE DB (OleDb) utilise un fournisseur OLE DB natif par le biais de COM Interop pour permettre l'accès aux données. Le fournisseur de données .NET Framework pour OLE DB prend en charge les transactions locales et distribuées. Pour les transactions distribuées, le fournisseur de données .NET Framework pour OLE DB s'inscrit automatiquement par défaut dans une transaction et obtient des détails de transaction des services de composants Windows 2000. Pour plus d'informations, voir Transactions et concurrence (ADO.NET).

Le tableau suivant montre les fournisseurs qui ont été testés avec ADO.NET.

Pilote

Fournisseur

SQLOLEDB

Fournisseur Microsoft OLE DB pour SQL Server

MSDAORA

Fournisseur Microsoft OLE DB pour Oracle

Microsoft.Jet.OLEDB.4.0

Fournisseur OLE DB pour Microsoft Jet

Remarque :

Il est déconseillé d'utiliser une base de données Access (Jet) comme source de données pour les applications multithread, telles que les applications ASP.NET. Si vous devez utiliser Jet comme source de données pour une application ASP.NET, sachez que les applications ASP.NET qui se connectent à une base de données Access peuvent rencontrer des problèmes de connexion. Pour vous aider à résoudre les problèmes de connexion lors de l'utilisation d'ASP.NET et d'une base de données Access (Jet), consultez l'article Q316675, « PRB : Impossible de se connecter à une base de données Access à partir de ASP.NET », dans la Base de connaissances Microsoft.

Le fournisseur de données .NET Framework pour OLE DB ne prend pas en charge les interfaces OLE DB version 2.5. Les fournisseurs OLE DB qui requièrent la prise en charge des interfaces OLE DB 2.5 ne fonctionneront pas correctement avec le fournisseur de données .NET Framework pour OLE DB. C'est le cas du fournisseur Microsoft OLE DB pour Exchange et du fournisseur Microsoft OLE DB pour Internet Publishing.

Le fournisseur de données .NET Framework pour OLE DB ne fonctionne pas avec le fournisseur OLE DB pour ODBC (MSDASQL). Pour accéder à une source de données ODBC à l'aide de ADO.NET, utilisez le fournisseur de données .NET Framework pour ODBC.

Les classes du fournisseur de données .NET Framework pour OLE DB sont situées dans l'espace de noms System.Data.OleDb. L'exemple de code suivant montre comment inclure l'espace de noms System.Data.OleDb dans vos applications.

Imports System.Data.OleDb
using System.Data.OleDb;
Remarque :

Le fournisseur de données .NET Framework pour OLE DB requiert MDAC version 2.6 ou ultérieure et MDAC 2.8 Service Pack 1 (SP1) est recommandé. Vous pouvez télécharger MDAC 2.8 SP1 à partir du Data Access and Storage Developer Center (en anglais).

.Fournisseur de données .NET Framework pour ODBC

Le fournisseur de données .NET Framework pour ODBC (Odbc) utilise le gestionnaire de pilotes (DM) ODBC natif pour permettre l'accès aux données. Le fournisseur de données pour ODBC prend en charge les transactions locales et distribuées. Pour les transactions distribuées, le fournisseur de données pour ODBC s'inscrit automatiquement par défaut dans une transaction et obtient des services de composants Windows 2000 les détails des transactions. Pour plus d'informations, voir Transactions et concurrence (ADO.NET).

Le tableau suivant indique les pilotes ODBC qui ont été testés avec ADO.NET.

Pilote

SQL Server

Microsoft ODBC pour Oracle

Pilote Microsoft Access (*.mdb)

Les classes du fournisseur de données .NET Framework pour ODBC sont situées dans l'espace de noms System.Data.Odbc.

L'exemple de code suivant montre comment inclure l'espace de noms System.Data.Odbc dans vos applications.

Imports System.Data.Odbc
using System.Data.Odbc;
Remarque :

Le fournisseur de données .NET Framework pour ODBC requiert MDAC version 2.6 ou ultérieure et MDAC 2.8 Service Pack 1 (SP1) est recommandé. Vous pouvez télécharger MDAC 2.8 SP1 à partir du Data Access and Storage Developer Center (en anglais).

.Fournisseur de données .NET Framework pour Oracle

Le fournisseur de données .NET Framework pour Oracle (OracleClient) permet l'accès aux sources de données Oracle par le biais du logiciel de connectivité client Oracle. Il prend en charge le logiciel client Oracle version 8.1.7 ou ultérieure. Le fournisseur de données prend en charge les transactions locales et distribuées. Pour plus d'informations, voir Transactions et concurrence (ADO.NET).

Le fournisseur de données .NET Framework pour Oracle requiert que le logiciel client Oracle (version 8.1.7 ou ultérieure) soit installé sur le système avant que vous puissiez vous connecter à une source de données Oracle.

Les classes du fournisseur de données .NET Framework pour Oracle sont situées dans l'espace de noms System.Data.OracleClient et sont contenues dans l'assembly System.Data.OracleClient.dll. Vous devez référencer System.Data.dll ainsi que System.Data.OracleClient.dll lorsque vous compilez une application qui utilise le fournisseur de données.

L'exemple de code suivant montre comment inclure l'espace de noms System.Data.OracleClient dans vos applications.

Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;

Choix d'un fournisseur de données .NET Framework

Selon le design et la source de données de votre application, le choix de votre fournisseur de données .NET Framework peut améliorer les performances, les fonctionnalités et l'intégrité de votre application. Le tableau suivant présente les avantages et les limites de chaque fournisseur de données .NET Framework.

Fournisseur

Remarques

.NET Framework Fournisseur de données pour SQL Server

Recommandé pour les applications de couche intermédiaire qui utilisent Microsoft SQL Server version 7.0 ou ultérieure.

Recommandé pour les applications monocouches qui utilisent Microsoft Database Engine (MSDE) ou SQL Server version 7.0 ou ultérieure.

Recommandé par rapport à l'utilisation du fournisseur OLE DB pour SQL Server (SQLOLEDB) avec le fournisseur de données .NET Framework pour OLE DB.

Pour SQL Server 6.5 et antérieure, vous devez utiliser le fournisseur OLE DB pour SQL Server avec le fournisseur de données .NET Framework pour OLE DB.

.NET Framework Fournisseur de données pour OLE DB

Recommandé pour les applications de couche intermédiaire qui utilisent SQL Server 6.5 ou antérieure.

Pour SQL Server 7.0 ou ultérieure, le fournisseur de données .NET Framework pour SQL Server est recommandé.

Il est également recommandé pour les applications monocouches qui utilisent des bases de données Microsoft Access. L'utilisation d'une base de données Access pour une application de couche intermédiaire est déconseillée.

.NET Framework Fournisseur de données pour ODBC

Recommandé pour les applications monocouches et de couche intermédiaire qui utilisent des sources de données ODBC.

.NET Framework Fournisseur de données pour Oracle

Recommandé pour les applications monocouches et de couche intermédiaire qui utilisent des sources de données Oracle.

Fournisseur EntityClient

Le fournisseur EntityClient permet d'accéder aux données basées sur un modèle de données d'entité EDM (Entity Data Model). Contrairement aux autres fournisseurs de données .NET Framework, il n'interagit pas directement avec une source de données. Au lieu de cela, il utilise Entity SQL pour communiquer avec le fournisseur de données sous-jacent. Pour plus d'informations, consultez EntityClient and Entity SQL.

Voir aussi

Autres ressources

Vue d'ensemble d'ADO.NET

Extraction et modification de données dans ADO.NET