none
Modificar la cadena de conexión de dataset's tipados RRS feed

  • 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?

    miércoles, 20 de mayo de 2015 14:57

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

    miércoles, 20 de mayo de 2015 21:07

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.

    miércoles, 20 de mayo de 2015 20:22
  • 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

    miércoles, 20 de mayo de 2015 21:07
  • 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.

    miércoles, 20 de mayo de 2015 21:10
  • 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

    En cuanto pueda lo pruebo, gracias!
    miércoles, 20 de mayo de 2015 21:11