Frage

Wir haben eine ASP.NET -Website, auf der eine Datenbank verwendet wird, die wir mit einem ConnectionString verwenden möchten. Wir haben erfolgreich einen DSN für die Verbindung mit dieser DB eingerichtet, aber ich kann nicht die richtige Magie für einen ConnectionString entdecken.

Gibt es eine einfache Möglichkeit, die Werte aus dem DSN in einen Verbindungsstring zu übersetzen? Ich weiß, dass es aus der Benutzeroberfläche keine offensichtliche Antwort dafür gibt ... jeder DB -Anbieter bietet eine andere Benutzeroberfläche für das Erstellen eines DSN basierend auf dem, was er benötigt. Ich hatte jedoch gehofft, dass sie unter der Benutzeroberfläche nur so etwas wie das Erstellen einer Verbindungszeichenfolge hinter den Kulissen tun könnte, und ich konnte mir das ansehen, um zu sehen, was ich falsch mache. Irgendeine Hoffnung darauf? Wenn ja, irgendwelche Hinweise darauf, wie ich die Informationen bekomme, die ich brauche?

(Ich bin zu ConnectionStrings.com gegangen, um sicherzustellen, dass meine Verbindungszeichenfolge im richtigen Format ist, aber nichts scheint zu funktionieren ... Deshalb versuche ich diesen seltsamen Übersetzer-FROM-DSN-Takt.)

BEARBEITEN: Ich darf nicht klar gewesen sein, dass wir keinen DSN -Eintrag haben möchten. Wir haben einen erstellt und haben ihn vorerst verwendet, aber wir möchten in der Lage sein, ihn loszuwerden und einen ConnectionString zu verwenden ohne a dsn.

War es hilfreich?

Lösung

Wenn Sie OLEDB verwenden können, können Sie a erstellen UDL -Datei. Erstellen Sie einfach ein neues Textdokument, test.udl und Doppelklick. Füllen Sie den Dialog aus und öffnen Sie ihn dann mit Notepad wieder. Voila - da ist deine Verbindungszeichenfolge.

ODBC ist etwas schwieriger - Sie können entweder eine Datei DSN vom ODBC -Administrator erstellen oder die Registrierung in die Registrierung stechen HKLM\Software\ODBC\ODBC.INI\<DSN Name> Für ein System DSN. Am Ende erhalten Sie einige Namen/Wertpaare. Sie sollten in der Lage sein, diese in eine Verbindungszeichenfolge zu übersetzen. Das \\Driver listet die tatsächliche DLL auf, sodass Sie den Anbieternamen aus erhalten müssen HKLM\Software\ODBC\ODBC Data Sources\\<DSN Name>.

Wenn Sie den OLEDB -Anbieter für ODBC verwenden können, können Sie den UDL -Trick verwenden und eine Verbindungszeichenfolge aus einer ODBC -Datei DSN erstellen lassen. Die ODBC -Verbindungszeichenfolge befindet sich in erweiterten Eigenschaften der UDL.

Andere Tipps

Wenn Sie ein DSN erstellt haben, dann der DSN ist Der ConnectionString!

Sie können einfach verwenden DSN=<YourDSNName> und geben Sie es an ein ODBCConnection -Objekt weiter.

Zum Beispiel mit C#:

string dsnName = "DSN=MyDSN";
using (OdbcConnection conn = new OdbcConnection(dsnName))
{
  conn.Open();
}

Alternativ können Sie die verwenden OdbcConnectionStringBuilder Klasse und setzen DSN Eigentum.

Um die Antwort von Mark Brackett über die Registrierung zu erweitern: Für einen 32-Bit-ODBC in einem 64-Bit-Fenster ist der Registrierungsweg HKLM Software WoW6432Node odbc odbc.ini

In meinem Fall reichte es aus:

  • Entfernen Sie den Header
  • Ersetzen Sie alle neuen Linien durch Semikolons
  • Verwenden Sie Zahnspangen als Gruppenabscheider

Hier ist meine DSN -Datei, die vom ODBC -Datenquelladministrator (3. Registerkarte - Datei DSN) erstellt wurde.

[ODBC]
DRIVER=MySQL ODBC 5.3 ANSI Driver
UID=MyUserName
PORT=3306
DATABASE=mydatabasename
SERVER=localhost

Und so sah meine Verbindungszeichenfolge aus:

DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top