C # Abrufen des korrekten DbConnection-Objekts anhand der Verbindungszeichenfolge
Habe ich ein connection-string an eine Funktion übergeben, und ich brauche zum erstellen einer DbConnection Basis-Objekt (also SQLConnection, OracleConnection, OLEDbConnection-etc) basierend auf diesen string.
Gibt es eine eingebaute Funktionalität, um dies zu tun, oder 3rd-party-Bibliotheken zu unterstützen. Wir sind nicht unbedingt Gebäude dieser Verbindungszeichenfolge, so können wir nicht verlassen sich auf ein format der string geschrieben wird, um zu bestimmen, seine Art, und ich würde lieber nicht zu codieren, bis alle Kombinationen und Permutationen möglich Verbindungszeichenfolgen
InformationsquelleAutor der Frage johnc | 2008-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Mark Cidade
wenn Sie mit framework 2.0 oder höher, und Sie können Sie zu übergeben, eine zweite Zeichenkette mit der Treiber-Klasse, die Sie verwenden können, die dbProviderFactory-Klasse zu laden, die Treiber für Sie.
Hier ein MSDN-link, um die Factory-Klasse:
http://msdn.microsoft.com/en-us/library/wda6c36e.aspx
InformationsquelleAutor der Antwort Eric Tuttleman
Sollten Sie in der Lage zu analysieren, aus der Provider-Abschnitt und geben ihn in DbProviderFactories.GetFactory wird wieder ein OdbcFactory, OleDbFactory oder SqlClientFactory und lassen Sie Sie dann durchführen CreateConnection etc.
Ich bin mir nicht sicher, wie dies mit Oracle arbeiten, es sei denn, Sie bieten eine OracleDbFactory.
InformationsquelleAutor der Antwort DamienG
Meisten Verbindungszeichenfolgen (zumindest in .NET 2.0) haben auch eine Eigenschaft providerName, der mit Ihnen geht. So eine SQL-Verbindungszeichenfolge wird ein Anbieter Namen wie:
Also deine Methode würde akzeptieren müssen sowohl die Verbindungszeichenfolge und den provider-Namen, und dann können Sie mit der DbProviderFactory wie bereits erwähnt, durch damieng.
InformationsquelleAutor der Antwort Bryant