Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Okay, thanks
Home
Search
Si no la he leído 200 veces en los foros MSDN no la he leído ninguna vayan
unos ejemplos:
Entradas recientes
Es posible modificar el App.config de una aplicación C# en tiempo de
Video de mi charla en la
ejecución? #dotNetSpain2016 ERROR pa
sitio web:
el dominio
Cómo hago para cambiar los datos de conexión en tiempo de I’m back. Miss me? web no es
ejecución?
Office365 actualizado a 2013
Cadena de conexión Dinámica, ¿cómo debo hacer esta modificación para nuevas suscripciones
desde un windows form en el mismo aplicativo?
Serializar listas genéricas en
aplicaciones WinRT
Y así unas cuantas. De hecho una búsqueda me ha arrojado más de 3.000
resultados :-S [TPL] Problemas de
concurrencia
De todos modos lo que me sorprende no es tanto el alto número de veces que
se hace esta pregunta, sino que cada vez que la respondo me digo a mi Comentarios recientes
mismo: Haz un post y publícalo para referenciar a la gente… y siempre se me
olvida
Darling Chavez en Tip: Mostrar
Bueno, pues de hoy no pasa. Y es que curiosamente me ha llegado la misma objetos relacionados en
DevExpress GridControl
pregunta por dos medios distintos. Uhm… casualidad? No lo creo. Sin duda
es una señal divina: El MEV me está hablando y yo -pobre mortal- debo Alexander en [TPL] Problemas de
obedecer. concurrencia
Archivos
providerName="System.Data.SqlClient" />
</connectionStrings>
marzo 2016
Y sirve para que si alguna vez deseamos cambiar el nombre del servidor, o la
base de datos, o cualquier otro atributo, lo hagamos en un único sitio. marzo 2013
Antes de seguir un detalle: ¿Os habéis fijado si en vuestro app.config tenéis octubre 2012
un clear antes de la cadena de conexión? Si no lo tenéis, os aconsejo
añadirlo. Este clear lo que hace es no cargar las cadenas de conexión del septiembre 2012
fichero machine.config, que es común a todas las aplicaciones.
agosto 2012
Y es que cuando se inicia una aplicación de .NET, se cargan las secciones
febrero 2012
comunes del machine.config y a continuación se añaden las propias de la
aplicación definidas en el app.config. diciembre 2011
septiembre 2011
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlC
Si no usamos el tag clear, al ejecutar nuestra aplicación tendremos dos junio 2011
cadenas de conexión, y la primera será la del machine.config… y eso no nos
mayo 2011
gusta
abril 2011
Así que asumiendo que ya habéis agregado el tag clear, vamos al turrón.
febrero 2011
System.Configuration
enero 2011
En este ensamblado encontraremos todo lo necesario para la gestión de
nuestras cadenas de configuración (y muchas cosas más). diciembre 2010
Lo primero es agregar una referencia a este ensamblado a nuestro proyecto: noviembre 2010
octubre 2010
agosto 2010
julio 2010
marzo 2010
febrero 2010
enero 2010
diciembre 2009
noviembre 2009
octubre 2009
septiembre 2009
agosto 2009
julio 2009
Y a continuación crearemos una clase con un par de métodos para leer y
junio 2009
guardar las cadenas de conexión en el app.config:
{ abril 2009
public static string GetConnectionString(string connectionStringName)
marzo 2009
{
febrero 2009
Configuration appconfig =
octubre 2008
{
agosto 2008
Configuration appconfig =
julio 2008
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
marzo 2008
Básicamente, al primero se le pasa el nombre de la cadena de conexión a
recuperar (por si tenemos varias) y nos devuelve la cadena de conexión. Al febrero 2008
segundo se le pasa el nombre de la cadena de conexión y la nueva cadena de
conexión modificada. enero 2008
diciembre 2007
Para hacerlo un poco más sencillo y no tener que recordar el nombre de las
cadenas de conexión, vamos a crear algunos métodos más en la clase. Uno
noviembre 2007
que retorne la lista de nombres de las cadenas de conexión del fichero de
configuración, y otro que retorne sólo el nombre de la primera (muy útil si sólo octubre 2007
tenemos una).
septiembre 2007
public static List<string> GetConnectionStringNames()
{
agosto 2007
Configuration appconfig =
febrero 2007
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
enero 2007
foreach (ConnectionStringSettings cn in appconfig.ConnectionStrings.ConnectionStrings)
{
Categorías
cns.Add(cn.Name);
}
.NET
return cns; C#
}
Channel9
Evento
public static string GetFirstConnectionStringName()
{ Personal
return GetConnectionStringNames().FirstOrDefault();
Videos
}
Incluso, basándonos en este último podemos crear otro que nos devuelva la
Meta
primera cadena de conexión:
Acceder
public static string GetFirstConnectionString()
}
WordPress.org
Let’s play!
A partir de esta clase, trabajar con las cadenas de conexión es muy sencillo.
Supongamos que tenemos un formulario similar a esto:
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(ConnectionStringManager.GetFirstConnectionString());
connectionServerComboBox.EditValue = builder.DataSource.ToUpper();
connectionDatabaseComboBox.EditValue = builder.InitialCatalog.ToUpper();
if (builder.IntegratedSecurity)
connectionAuthenticationModeRadioGroup.EditValue = 0;
connectionUsernameTextEdit.Text = string.Empty;
connectionPasswordTextEdit.Text = string.Empty;
else
connectionAuthenticationModeRadioGroup.EditValue = 1;
connectionUsernameTextEdit.Text = builder.UserID;
connectionPasswordTextEdit.Text = builder.Password;
La siguiente pregunta lógica es: ¿Y para guardar sólo uno de los valores en el
fichero de configuración? El típico ejemplo es modificar el nombre del servidor
al instalar en el cliente final. Para ello vamos a usar también un builder, y
vamos a ampliar la clase anterior con algunos métodos más. Para obtener los
valores de las propiedades de la cadena de conexión y para guardarlos:
string cs = GetConnectionString(GetFirstConnectionStringName());
if (cs != null)
return builder.DataSource;
else
return null;
string cs = GetConnectionString(GetFirstConnectionStringName());
if (cs != null)
return builder.InitialCatalog;
else
return null;
string cs = GetConnectionString(GetFirstConnectionStringName());
if (cs != null)
return builder.UserID;
else
return null;
string cs = GetConnectionString(GetFirstConnectionStringName());
if (cs != null)
return builder.Password;
else
return null;
string cs = GetConnectionString(GetFirstConnectionStringName());
if (cs != null)
return builder.IntegratedSecurity;
else
return null;
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connectionString);
builder.DataSource = serverName;
return builder.ConnectionString;
string connectionString)
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connectionString);
builder.IntegratedSecurity = true;
return builder.ConnectionString;
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connectionString);
builder.IntegratedSecurity = false;
builder.UserID = username;
builder.Password = password;
return builder.ConnectionString;
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connectionString);
builder.InitialCatalog = databaseName;
return builder.ConnectionString;
Así pues, para cambiar el nombre del servidor en el app.config bastaría con:
string cs = ConnectionStringManager.GetFirstConnectionString();
ConnectionStringManager.SaveConnectionString(
ConnectionStringManager.GetFirstConnectionStringName(), newConStr);
Nos vemos!
Comments
Kiquenet dice:
24 octubre, 2011 a las 5:20 pm
Sería interesante ver ese diálogo de Sql Server
http://stackoverflow.com/questions/2205993/winforms-connection-
properties-dialog-for-configuration-string
Saludos
Responder
Deja un comentario
Comentario
Nombre *
Correo electrónico *
Web
Publicar comentario