Principales respuestas
Modificar la cadena de conexión de dataset's tipados

Pregunta
-
Hola,
Tengo un proyecto a 3 capas, cada una separada en DLL, la capa DAL esta formada por Datasets tipados, cual seria la forma mas "cómoda" de cambiar la cadena de conexión para ir alternando entre entornos de desarrollo y producción?
Hay alguna forma que App.config funcione como un Web.config (transformaciones) ? hay alguna forma de automatizarlo con msbuild? he tratado de cambiar el app.config y recompilar con msbuild pero parece que no hay ningún cambio... una vez asignada la conexión se queda guardada en cada dataset?
Respuestas
-
Cuando creas una conexión con un Dataset por asistente te crea una cadena de conexión en el app.config,ejemplo si tu tu BD se llama INVENTARIO en el app.config crea una entrada llamada INVENTARIOConnectioString
si quisieras cambiar la conexion en tiempo de ejecucion tienes que realizar lo siguiente
DIM strConnect AS string= "Data Source=TUSERVIDOR;Initial Catalog=TUBD;User ID=TUUSUARIO;Password=TUCLAVE"
My.Settings.Item("MIBDConnectionString") = ""
My.Settings.Item("MIBDConnectionString") = strConnect
My.Settings.Save()Slds
ProgramacionYa.net
Si pequeña es la Patria, uno grande la sueña
Rubén Darío
Principe de las letras Castellanas
Poeta Nicaragüense
- Marcado como respuesta David Porqueras jueves, 21 de mayo de 2015 10:31
Todas las respuestas
-
Hay alguna forma que App.config funcione como un Web.config
No solo "hay alguna forma" sino que, de hecho, es forzoso trabajar con el web.config. El app.config de una DLL solo sirve en tiempo de diseño. Pero en tiempo de ejecución, la DLL siempre usa el .config del ejecutable que la llama (o el web.config si la dll la llamas desde una aplicación web).
Así que no tienes más remedio que copiar al web.config la sección <connectionStrings> del app.config de la DLL, si quieres que ésta encuentre sus cadenas de conexión en tiempo de ejecución (en tiempo de desarrollo, déjaselas dentro del app.config apuntando al servidor de desarrollo, para que el diseñador visual saque de dicho servidor la estructura de las tablas).
Una vez que tienes los <connectionStrings> en el web.config, quedan sujetos a las transformaciones que les apliques desde el web.debug.config o el web.release.config, así que por esta vía puedes cambiar fácilmente las conexiones para que vayan al servidor de desarrollo o al de producción.
-
Cuando creas una conexión con un Dataset por asistente te crea una cadena de conexión en el app.config,ejemplo si tu tu BD se llama INVENTARIO en el app.config crea una entrada llamada INVENTARIOConnectioString
si quisieras cambiar la conexion en tiempo de ejecucion tienes que realizar lo siguiente
DIM strConnect AS string= "Data Source=TUSERVIDOR;Initial Catalog=TUBD;User ID=TUUSUARIO;Password=TUCLAVE"
My.Settings.Item("MIBDConnectionString") = ""
My.Settings.Item("MIBDConnectionString") = strConnect
My.Settings.Save()Slds
ProgramacionYa.net
Si pequeña es la Patria, uno grande la sueña
Rubén Darío
Principe de las letras Castellanas
Poeta Nicaragüense
- Marcado como respuesta David Porqueras jueves, 21 de mayo de 2015 10:31
-
Hay alguna forma que App.config funcione como un Web.config
No solo "hay alguna forma" sino que, de hecho, es forzoso trabajar con el web.config. El app.config de una DLL solo sirve en tiempo de diseño. Pero en tiempo de ejecución, la DLL siempre usa el .config del ejecutable que la llama (o el web.config si la dll la llamas desde una aplicación web).
Así que no tienes más remedio que copiar al web.config la sección <connectionStrings> del app.config de la DLL, si quieres que ésta encuentre sus cadenas de conexión en tiempo de ejecución (en tiempo de desarrollo, déjaselas dentro del app.config apuntando al servidor de desarrollo, para que el diseñador visual saque de dicho servidor la estructura de las tablas).
Una vez que tienes los <connectionStrings> en el web.config, quedan sujetos a las transformaciones que les apliques desde el web.debug.config o el web.release.config, así que por esta vía puedes cambiar fácilmente las conexiones para que vayan al servidor de desarrollo o al de producción.
Hola Alberto,
Disculpa, no me he explicado con claridad, mi aplicación es Winforms, conozco el sistema de trabajo en asp.net con el web.config, de hecho es lo que suelo usar, de ahí que busque algo similar para el proyecto winforms.
No se si existe algo similar para winforms, por lo que estoy leyendo parece que la culpa de mis dolores de cabeza la tiene el archivo settings que se actualiza con al información del app.config.
-
Cuando creas una conexión con un Dataset por asistente te crea una cadena de conexión en el app.config,ejemplo si tu tu BD se llama INVENTARIO en el app.config crea una entrada llamada INVENTARIOConnectioString
si quisieras cambiar la conexion en tiempo de ejecucion tienes que realizar lo siguiente
DIM strConnect AS string= "Data Source=TUSERVIDOR;Initial Catalog=TUBD;User ID=TUUSUARIO;Password=TUCLAVE"
My.Settings.Item("MIBDConnectionString") = ""
My.Settings.Item("MIBDConnectionString") = strConnect
My.Settings.Save()Slds
ProgramacionYa.net
Si pequeña es la Patria, uno grande la sueña
Rubén Darío
Principe de las letras Castellanas
Poeta Nicaragüense