Mi necesidad que tengo es que necesito que la conexión sea dinámica ya que desde la misma aplicación el usuario puede conectarse a otro servidor y otra base de datos entonces necesito actualiza la conexion pero no se si al hacer eso afecte a los demas usuarios, actualmente uso Settings.Default y no tengo ningún problema solo actualizo la conexión ahí pero quiero estructurar bien este nuevo proyecto y quiero utilizar la parte de Datos en una biblioteca de clases.
Entonces tengo lo siguiente:
El app.Config que genera el EnterpriseLibrary que ahí le puse un servidor y base por default:
Código:
Luego hago esto para actualizar la conexión pero no lo hace y ese es mi gran problema, no se si me este faltando algo.<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> <connectionStrings> <add name="strConn" connectionString="data source=SERVERA;Initial Catalog=BASEA;Persist Security Info=True;User ID=sa;Password=sa;Enlist=True;Connect Timeout=900;Application" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
Código:
//Cargo la configuracion Configuration Config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //Se elimina la conexion. Config.ConnectionStrings.ConnectionStrings.Remove("strConn"); //Agrego la nueva conexion string strConnString = "data source=SERVERB;Initial Catalog=BASEB;Persist Security Info=True;User ID=sa;Password=sa;Enlist=True;Connect Timeout=900;Application"; string strProvider = "System.Data.SqlClient"; Config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings("strConn", strConnString, strProvider)); //Guardo el archivo de configuracion Config.Save(ConfigurationSaveMode.Full); //Forzo la aplicacion para que actualize el archivo en tiempo de ejecucion ConfigurationManager.RefreshSection("connectionStrings");
Con este código cargo la conexión que tiene el app.Config que configuro el Enterprise Library y tiene la conexión que por default le puse, esto desde una clase que tengo en la biblioteca de clases.
Código:
Alguna sugerencia, apoyo, de antemano muchas gracias. Database db = DatabaseFactory.CreateDatabase("strConn"); DbCommand cmd;