Pregunta

Tenemos un ASP.NET sitio web que utiliza una base de datos que queremos ser capaces de utilizar una cadena de conexión para llegar a.Hemos conseguido crear un DSN para la conexión a la DB, pero me parece que no puede descubrir la correcta magia para ir con un connectionstring.

Hay una manera sencilla de traducir los valores de la DSN en un connectionstring?Sé que a partir de la interfaz de usuario, no hay una respuesta obvia para esto...cada db proveedor proporciona diferentes de interfaz de usuario para la creación de un DSN de la base de lo que requieren.Sin embargo, tenía la esperanza de que debajo de la interfaz de usuario que sólo podría hacer algo como la creación de una cadena de conexión detrás de las escenas, y yo pude ver que a ver qué estoy haciendo mal.Cualquier esperanza de esto?Si es así, alguna sugerencia sobre cómo obtener la información que necesito?

(Me he ido a la connectionstrings.com para tratar de asegurarse de que mi cadena de conexión está en el formato correcto, pero nada parece funcionar...es por eso que estoy tratando de este extraño traducir-de-dsn intacto).

EDITAR: Algo que no debe haber sido claro es que no queremos tener un DSN de entrada.Hemos creado uno, y lo han utilizado para el momento, pero queremos ser capaces de deshacerse de él y utilizar una cadena de conexión sin un dsn.

¿Fue útil?

Solución

Si usted puede utilizar OLEDB, entonces usted puede crear un Archivo UDL.Basta con crear un nuevo documento de texto, test.udl y haga doble clic.Rellene el cuadro de diálogo, luego abrirlo con el Bloc de notas.Voila - no es tu cadena de conexión.

ODBC es un poco más difícil - usted puede crear un DSN de archivo desde el Administrador de ODBC o husmear en el registro en HKLM\Software\ODBC\ODBC.INI\<DSN Name> para un DSN de sistema.Usted va a terminar con algunos pares de nombre/valor.Usted debe ser capaz de traducir esos en una cadena de conexión.El \\Driver aparecerá una lista de DLL, así que usted necesitará para obtener el nombre del proveedor de HKLM\Software\ODBC\ODBC Data Sources\\<DSN Name>.

Si usted puede utilizar el Proveedor OLEDB para ODBC, entonces usted puede utilizar la UDL truco y tiene que generar una cadena de conexión de ODBC DSN de archivo así.La cadena de conexión ODBC será en las Propiedades Extendidas de la UDL.

Otros consejos

Si ha creado un DSN, entonces el DSN es el ConnectionString !

Usted puede simplemente utilizar DSN=<YourDSNName> y se pasa a un OdbcConnection objeto.

Por ejemplo, el uso de C#:

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

Como alternativa, puede utilizar la OdbcConnectionStringBuilder la clase y el conjunto de sus DSN de la propiedad.

Para ampliar la respuesta de Mark Brackett sobre el registro: para un ODBC de 32 bits en un Windows de 64 bits, la ruta del registro es HKLM \ Software \ Wow6432Node \ ODBC \ ODBC.INI \

En mi caso fue suficiente para:

  • Eliminar el encabezado
  • Reemplace todas las líneas nuevas con punto y coma
  • Usar llaves como separador de grupo

Aquí está mi archivo DSN creado por el Administrador de fuente de datos ODBC (tercera pestaña & # 8212; DSN de archivo)

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

Y así es como se veía mi cadena de conexión:

DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top