Fournisseur de données .NET Framework

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 objet DataSet pour pouvoir être exposés à l'utilisateur le cas échéant, combinés aux données de différentes sources ou accessibles à distance entre 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, ce qui augmente 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
Fournisseur de données .NET Framework pour SQL Server Fournit l'accès aux données pour Microsoft SQL Server. Utilise l'espace de noms System.Data.SqlClient .
Fournisseur de données .NET Framework pour OLE DB Pour les sources de données exposées à l'aide de OLE DB. Utilise l'espace de noms System.Data.OleDb .
fournisseur de données .NET Framework pour ODBC Pour les sources de données exposées à l'aide de ODBC. Utilise l'espace de noms System.Data.Odbc .
fournisseur de données .NET Framework 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 .
Fournisseur de données .NET Framework pour SQL Server Compact 4.0. Fournit l'accès aux données pour Microsoft SQL Server Compact 4.0. Utilise l’espace de noms System.Data.SqlServerCe .

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.

Object 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.

Object 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. Pour une erreur rencontrée sur le 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 montre une comparaison du 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.

Notes

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.

Data providers
Comparaison du fournisseur de données .NET Framework pour SQL Server et du fournisseur de données .NET Framework pour OLE DB

Le fournisseur de données .NET Framework pour des classes SQL Server se trouve dans l’espace de noms System.Data.SqlClient.

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, consultez Transactions et concurrence.

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. Pour plus d’informations, consultez Transactions et concurrence.

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

Notes

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.

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;  

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 ODBC s’inscrit automatiquement par défaut dans une transaction et obtient des détails de transaction des services de composants Windows. Pour plus d’informations, consultez Transactions et concurrence.

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;  

Notes

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é.

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, consultez Transactions et concurrence.

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 Notes
Fournisseur de données .NET Framework pour SQL Server Recommandé pour les applications de couche intermédiaire qui utilisent Microsoft SQL Server.

Recommandé pour les applications monocouches qui utilisent des bases de données Microsoft Database Engine (MSDE) ou SQL Server.

Recommandé par rapport à l'utilisation du fournisseur OLE DB pour SQL Server (SQLOLEDB) avec le fournisseur de données .NET Framework pour OLE DB.
Fournisseur de données .NET Framework pour OLE DB Pour SQL Server, le fournisseur de données .NET Framework pour SQL Server est recommandé au lieu de ce fournisseur.

Il est 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.
fournisseur de données .NET Framework pour ODBC Recommandé pour les applications monocouches et de couche intermédiaire qui utilisent des sources de données ODBC.
fournisseur de données .NET Framework 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 la page Fournisseur EntityClient pour Entity Framework.

Voir aussi