Domanda

Abbiamo un sito Web ASP.NET che utilizza un database per il quale vogliamo essere in grado di utilizzare una stringa di connessione. Abbiamo impostato con successo un DSN per la connessione a questo DB, ma non riesco a scoprire la magia corretta da utilizzare con una stringa di connessione.

Esiste un modo semplice per tradurre i valori dal DSN in una stringa di connessione? So che dall'interfaccia utente non esiste una risposta ovvia per questo ... ogni fornitore di database fornisce un'interfaccia utente diversa per la creazione di un DSN in base a ciò di cui hanno bisogno. Tuttavia, speravo che sotto l'interfaccia utente potesse semplicemente fare qualcosa come creare una stringa di connessione dietro le quinte, e potrei guardarlo per vedere cosa sto facendo di sbagliato. Qualche speranza di questo? In tal caso, qualche suggerimento su come ottenere le informazioni di cui ho bisogno?

(Sono andato su connectionstrings.com per cercare di assicurarmi che la mia stringa di connessione sia nel formato giusto, ma nulla sembra funzionare ... ed è per questo che sto provando questo strano tocco da tradurre a dsn .)

MODIFICA: Qualcosa su cui non devo essere stato chiaro è che non vogliamo avere una voce DSN. Ne abbiamo creato uno e lo abbiamo usato per il momento, ma vogliamo essere in grado di liberarcene e utilizzare una stringa di connessione senza una dsn.

È stato utile?

Soluzione

Se puoi utilizzare OLEDB, puoi creare un File UDL . Basta creare un nuovo documento di testo, test.udl e fare doppio clic. Compila la finestra di dialogo, quindi aprila di nuovo con Blocco note. Voilà - c'è la tua stringa di connessione.

ODBC è un po 'più difficile: puoi creare un DSN di file dall'amministratore ODBC o cercare nel registro HKLM\Software\ODBC\ODBC.INI\<DSN Name> per un DSN di sistema. Finirai con alcune coppie nome / valore. Dovresti essere in grado di tradurli in una stringa di connessione. \\Driver elencherà la DLL effettiva, quindi dovrai ottenere il nome del provider da HKLM\Software\ODBC\ODBC Data Sources\\<DSN Name>.

Se è possibile utilizzare il provider OLEDB per ODBC, è possibile utilizzare il trucco UDL e fare in modo che crei una stringa di connessione anche da un DSN di file ODBC. La stringa di connessione ODBC sarà in Proprietà estese dell'UDL.

Altri suggerimenti

Se hai creato un DSN, allora il DSN è ConnectionString!

Puoi semplicemente usare DSN=<YourDSNName> e passarlo a un oggetto OdbcConnection.

Ad esempio, usando C #:

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

In alternativa, puoi utilizzare OdbcConnectionStringBuilder e imposta la sua DSN proprietà.

Per espandere la risposta di Mark Brackett sul registro: per un ODBC a 32 bit su un Windows a 64 bit, il percorso del registro è HKLM \ Software \ Wow6432Node \ ODBC \ ODBC.INI \

Nel mio caso è stato sufficiente:

  • Rimuovi l'intestazione
  • Sostituisci tutte le nuove righe con punti e virgola
  • Usa le parentesi graffe come separatore di gruppo

Ecco il mio file DSN creato dall'amministratore dell'origine dati ODBC (terza scheda & # 8212; File DSN)

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

Ed ecco come appariva la mia stringa di connessione:

DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top