Ajouter un provider ado.net sur une machine locale [Résolu]

Signaler
Messages postés
38
Date d'inscription
vendredi 31 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2011
-
Messages postés
38
Date d'inscription
vendredi 31 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2011
-
Bonjour,
Je tente d'utiliser les nouvelles fonctionnalités du framework 2.0, plus précisemment, les fabriques de classes pour les bases de données.
Je parviens facilement à récupérer les différents providers disponibles sur la machine :
DataTable fournisseursFactory = DbProviderFactories.GetFactoryClasses();

Grâce à cela, j'arrive à instancier les classes nécessaires aux différentes manipulations de ma base de données.
Un problème survient lorsque je veux utiliser un type de base de données n'étant pas repris dans la liste retournée par GetFactoryClasses(). Par exemple, MySql.

D'où ma question : comment puis-je ajouter, via du code C#, un provider dans la liste retournée par GetFactoryClasses()?

Je sais que cette méthode va chercher les informations nécessaires dans le fichier machine.config mais je ne peux ajouter ces informations "manuellement" car elles sont dépendantes du type de la base de données.

Merci d'avance,
Seb.

5 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, j'ai pas encore étudié les fabriques mais il me semble que c'est le provider qui doit s'inscrire dans le machine.config.

Regardes ce lien :

http://nux.co.za/index.php?option=com_content&task=view&id=17&Itemid=2
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
pour te connecter à une base de données dont le provider n'est pas fourni pas défault par visual studio, il faut que tu telecharges le provider adequat.

Pour mySql il faut que tu recuperes le provider à cette adresse

http://dev.mysql.com/downloads/connector/net/1.0.html

Bonne journée
Messages postés
38
Date d'inscription
vendredi 31 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2011

Effectivement, il faut le driver !
Mais dans ce cas, nous perdons tout l'intérêt des fabriques de classe.

Il faudrait que l'on puisse changer de SGBD sans changer une ligne de code. Ce qui est faisable avec les fabriques!

Le problème est de charger un provider qui n'est pas natif à Visual Studio. Ce provider serait spécifié par l'utilisateur, et grâce à GetFactoryClasses(), le code créerait la bonne classe.

Merci pour ta réponse,
Seb.
Messages postés
38
Date d'inscription
vendredi 31 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2011

Salut,
Merci pour l'info!
Je vais regarder cela de près.

Bonne journée,
Seb.
Messages postés
38
Date d'inscription
vendredi 31 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2011

L'exemple du lien fonctionne bien... si le provider est enregistré sur la machine! Il faut donc attendre un petit peu pour que les fournisseurs de drivers de mettent au gout du jour à mon avis. Cela ne devrait pas tarder.

Bonne journée à tous,
merci encore,
Seb.