Comment faire : utiliser les classes de base pour réduire les duplications avec de code géré fournisseurs dans Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 313304 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Utilisez ce guide étape par étape pour savoir comment utiliser les classes de base pour réduire code embranchement en fourche avec les fournisseurs gérés.

Description de la technique

ADO.NET possède différents types de fournisseurs de données (par exemple, SqlClient, OleDb, ODBC, etc.). Si vous choisissez le fournisseur de données .NET incorrect lorsque vous développez une application, vous êtes verrouillé en utilisant le fournisseur, ou vous devrez largement réécrire votre code. Pour éviter ce problème, vous pouvez utiliser les classes de base.

Par exemple, les classes SqlDataAdapter , OleDbDataAdapter et OdbcDataAdapter tous les héritent de la classe DbDataAdapter qui à son tour hérite de la classe System.Data.Common.DataAdapter . Vous pouvez créer notre propre classe ou une fonction qui utilise la classe parent ( DataAdapter ) plutôt que de la classe héritée (comme SqlDataAdapter , OleDbDataAdapter et OdbcDataAdapter ). La fonction renvoie un objet commun ou une interface qui est indépendant de fournisseur. De cette façon, vous pouvez isoler le code spécifique au fournisseur pour une fonction ou une classe commun et écrire votre application afin qu'il soit générique à tous les fournisseurs.

Pour plus d'informations sur l'héritage dans Visual C# .NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
307205 Comment faire : utiliser l'héritage dans Visual c#
La procédure décrite dans cet article explique comment utiliser l'interface IDataAdapter pour accepter n'importe quel fournisseur .NET spécifique DataAdapter .

Remarque : la méthode préférée pour embranchement en fourche d'un code consiste à utiliser l'interface IDataAdapter lorsque hériter de la classe DbDataAdapter . Autre inclue interfaces préféré IDBConnection , IDBCommand et le IDataReader .

Configuration requise

Les éléments suivants décrivent le matériel recommandé, les logiciels, infrastructure réseau, compétences et connaissances, service packs que vous devez :
  • Microsoft Windows 2000 Professionnel, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server ou Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Fournisseur de données ODBC .NET
  • Microsoft SQL Server 7.0 ou version ultérieure
Les éléments suivants décrivent ce que vous devez comprendre pour pouvoir utiliser les informations fournies dans cet article.
  • Microsoft Visual Studio .NET
  • Principes de base Microsoft ADO.NET et la syntaxe

Créer un projet et ajouter de code

L'exemple suivant explique comment utiliser l'interface IDataAdapter pour réduire code embranchement en fourche de System.Data.OleDb.OledbDataAdapter , System.Data.SqlClient.SqlDataAdapter et Microsoft.Data.odbc.OdbcDataAdapter .
  1. Démarrez Visual Studio .NET.
  2. Créez une nouvelle application Windows dans Visual C# .NET.
  3. Assurez-vous que votre projet contient une référence à l'espace de noms System.Data ; ajouter une référence si ce n'est pas le cas.
  4. Ajouter des références à Microsoft.Data.odbc.dll .Pour plus d'informations sur le fournisseur de managé ODBC .NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    310988 Comment faire pour utiliser le fournisseur managé ODBC .NET dans Visual C# .NET et les chaînes de connexion
  5. Placez un bouton , un contrôle DataGrid et trois contrôles RadioButton dans Form1.
    • Modifier la propriété Name du bouton btnTest et à la propriété Text test .
    • Modifier la propriété Name de la première RadioButton rbSqlClient et à la propriété texte SQL client .
    • Modifier la propriété nom de la deuxième RadioButton rbOledb et à la propriété Text OLEDB .
    • Modifier la propriété Name de la troisième RadioButton rbOdbc et la propriété Text à ODBC .
  6. Utilisez l'instruction using sur les espaces de noms afin que vous n'êtes pas nécessaire de qualifier les déclarations dans les espaces de noms plus loin dans votre code. Ajoutez le code suivant à la section « Déclarations générales » de Form1 :
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using Microsoft.Data.Odbc;
    					
  7. Tapez ou collez le code suivant dans la zone « déclarations générales »:
    IDataAdapter da;
    DataSet ds = new DataSet();
    					
  8. Créer une fonction DataAdapterFactory qui contient le code suivant :
    public IDataAdapter DataAdapterFactory()
    {
    	String myConnString; 
    	String myQuery  = "Select * From Customers";
    
    	if (rbSqlClient.Checked)
    	{
    		//Using SqlClient
    		myConnString = "server=myserver;integrated security=sspi;database=Northwind";
    		SqlConnection mycon = new SqlConnection(myConnString);
    		SqlDataAdapter daCust = new SqlDataAdapter(myQuery, mycon);
    		return daCust;
    	}
    	else if (rbOledb.Checked)
    	{
    		//Using OleDb
    		myConnString = "Provider=SqlOledb.1;Data Source=myserver;integrated security=SSPI;Database=Northwind";
    		OleDbConnection mycon = new OleDbConnection(myConnString);
    		OleDbDataAdapter daCust = new OleDbDataAdapter(myQuery, mycon);
    		return daCust;
    	}															   
    	else if (rbOdbc.Checked)
    	{
    		//Using Odbc
    		myConnString = "Driver={SQL Server};Server=myserver;trusted_connection=yes;database=Northwind";
    		Microsoft.Data.Odbc.OdbcConnection mycon = new Microsoft.Data.Odbc.OdbcConnection(myConnString);
    		OdbcDataAdapter daCust = new OdbcDataAdapter(myQuery, mycon);
    		return daCust;
    	}
    	else
    	{
    		return null;
    	}																											  
    }
    					
  9. Tapez ou collez le code suivant dans l'événement Click btnTest :
    da = DataAdapterFactory();
    da.Fill(ds);
    dataGrid1.DataSource = ds ;
    					
  10. Modifier les chaînes de connexion en fonction de votre environnement.
  11. Enregistrer votre projet. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter votre projet.
  12. Sélectionnez le fournisseur géré que vous souhaitez utiliser pour la connexion puis cliquez sur bouton (test).

    Le contrôle DataGrid affiche les données renvoyées par la requête.

Résolution des problèmes

Si vous utilisez des classes de base, vous risquez de perdre fonctionnalités spécifiques au fournisseur.

Références

Pour plus d'informations sur objets ADO.NET et la syntaxe, consultez la documentation de Microsoft .NET Framework SDK ou MSDN en ligne :
Accès aux données avec ADO.NET
http://msdn.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx
Pour plus d'informations sur fournisseurs .NET gérés, consultez Centre du développeur .NET ou site Web de Microsoft à l'adresse suivante :
Dans .NET géré fournisseurs
http://msdn.microsoft.com/en-us/library/ms810268.aspx

Propriétés

Numéro d'article: 313304 - Dernière mise à jour: dimanche 13 mai 2007 - Version: 3.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Initiation
  • Microsoft Visual C# .NET 2003 Initiation
Mots-clés : 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB313304 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 313304
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com