2010-08-31 9 views
4

J'ai des problèmes avec la création de chaînes de connexion. J'avais l'habitude de générer "Provider = SQLOLEDB" ou "Provider = SQLNCLI". Maintenant, je vois que certains utilisateurs ont SQLNCLI10 tandis que SQLNCLI est manquant. Est-il possible d'énumérer les fournisseurs disponibles afin que je puisse en choisir un valide?Liste des fournisseurs de base de données disponibles

System.Data.Common.DbProviderFactories.GetFactoryClasses() répertorie les fournisseurs de données .NET mais je ne sais toujours pas quels paramètres de chaîne de connexion sont valides.

Répondre

5

Si vous utilisez System.Data.SqlClient.SqlConnection (directement ou indirectement), alors il n'y a pas besoin de spécifier un élément de fournisseur dans la chaîne de connexion. J'imagine que cette valeur est simplement ignorée si elle est fournie.

Voir le documentation pour la liste complète de tous les éléments pris en charge dans les chaînes de connexion SqlConnection.

Cependant, si vous utilisez OleDb, cela fait ce que vous voulez: http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbenumerator.aspx

Par exemple:

internal static class Program 
{ 
    private static void Main(string[] args) 
    { 
     using (OleDbDataReader dataReader = OleDbEnumerator.GetRootEnumerator()) 
     { 
      while (dataReader.Read()) 
      { 
       Console.WriteLine("{0}, {1}", dataReader[0], dataReader[2]); 
      } 
     } 
    } 
} 
+0

Thaks, ce OleDbEnumerator fait exactement ce que je veux. –

-1

Pour plus de détails sur la chaîne de connexion, voir connectionstrings.com.

+0

Ceci n'est pas une réponse à cette question –