Tag:.net
Este post viene a cuento de algo que he tenido que hacer en un programita que estoy haciendo para un encargo que tengo por ahi. Es algo, que despues de buscar por internet he aprendido a hacer, y como lo he hecho yo solito me siento tan emocionado que me he subido a la parra y voy a ir en plan profe en este post enseñandolo al mundo. Eso si, eso no quita para que, posiblemente hacer esto sea una ñapa como una casa, no soy ninguna eminencia programando, aviso...

El archivo app.config es un archivito de configuracion que acompaña a todos los proyectos creados con el entorno de .NET de Microsoft, suele servir para que el programador tire de el para guardar algunas variables fijas o chuminadas varias de la aplicacion que estes programando, aunque tambien sirve para, por ejemplo guardar el "Connection String" de un programa si lo has enganchado a una base de datos. A veces puede darse el caso, (El mio, sin ir mas lejos), de que necesites tratar una base de datos con determinadas tablas con determinados formatos, pero de la cual no sabes ni el nombre ni la ruta del disco duro en la que esta, asi que tendrias que cambiar la cadena de conexion a la DB en tiempo de ejecucion, justo antes de establecerse esa conexion para que pueda conectarse con la base de datos correcta, asi pues aqui va este tuto:

Lo primero sera añadir la referencia a System.Configuration: (Using System.Configuration; en C# o Imports System.Configuration en VB)

private void button1_Click(object sender, EventArgs e)
{
try
{
Configuration conf = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
conf.AppSettings.Settings.Add("IVA", "7");
conf.Save();
MessageBox.Show("ok");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
En este ejemplo sale como le añadimos al archivo de configuracion un nuevo parametro, en este caso, el IVA con valor 7. Pero ¿y si tenemos ya el IVA creado de antes y queremos modificarlo?, facil:
private void button1_Click(object sender, EventArgs e)
{
try
{
Configuration conf = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
conf.AppSettings.Settings("IVA").Value = "16";
conf.Save();
MessageBox.Show("ok");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Vale, guai, pero yo lo que quiero cambiar es la cadena de conexion de mi aplicacion con la base de datos que elija, bien, ahora vemos como se hace:

private void button1_Click(object sender, EventArgs e) ConnectionStringsSection
{
try
{
Configuration conf = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
ConnectionStringsSection css = conf.ConnectionStrings;
css.ConnectionStrings("Nombre_de_conexion").ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BLABLABLA"
;

conf.Save();
MessageBox.Show("ok");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Ahora si estamos cambiando la cadena de conexion de la base de datos en tiempo de ejecucion. Pero, atencion, este cambio solo sera util si se hace antes de que la aplicacion haga uso de esa cadena de conexion para conectarse a la BD, una vez este conectada la Connection String se quedara en cache y por mas que modifiquemos el app.config en tiempo de ejecucion la aplicacion se quedara con la primera escritura del app.config, para evitar deberemos destruir la conexion de la base de datos en nuestro codigo donde corresponda.

Hasta poder publicar este post he tenido que pasar dos dias casi sin dormir por culpa de ese encargo y para colmo mientras intentaba escribir esto se me ha petado el firefox 2 veces y se me ha reiniciado el PC el solito asi por toa la cara, asi que, Dios, te digo una cosa.

"Dios, no puedes conmigo muahahahaha"

 

alt

Desde hace un par de semanas estoy acudiendo a un curso de FPO sobre la programacion en la plataforma .NET de Microsoft. Estoy aprendiendo mucho el lenguaje de programacion C# y mucho acerca de el modelo de programacion orientado a objetos. Me esta costando, mucho, porque los mamonazos de Madrid me avisaron del curso con casi 2 semanas de retraso, pero al final creo que me estoy reenganchando y estoy esforzandome para ponerme al nivel, los bloques mas importantes del curso van a ser, primero el entorno de Visual Studio, C# y la programacion orientada a objetos, despues le meteremos mano al conector ADO.NET para usar bases de datos en Microsoft SQL Server, y al final nos meteremos en programacion web con ASP.NET. El curso tiene una pinta tremenda, y ademas si me esfuerzo lo suficiente es posible que acabe trabajando despues del curso, lo cual lo hace mas apetitoso (Si al final no, pues oye, eso que me llevo aprendido).

El caso es que una de las practicas que estamos haciendo es hacer una serpiente en C#, la serpiente tiene muros y mapitas, y ademas tuneles en los bordes para poder darle mas versatilidad, despues es lo tipico, van saliendo frutas que tienes que comerte para crecer y cuantas mas frutas te comas, mas puntos ganas, y cuantos mas puntos ganes, mas rapido ira la serpiente. Ademas de la serpiente tambien estoy haciendo un editor de mapas para crear mapas personalizados para el juego y eso. Cuando termine de hacerlo todo, y el profe me enseñe a hacer un paquete de instalacion del juego, pienso liberarlo (Ejecutable y codigo fuente, aunque no se aun con que licencia hacerlo), e intentare seguir haciendo cosillas en .NET para no oxidarme, he de ser productivo, asi que aqui van ya las primeras cosas que ire sacando, espero que no sea la ultima..

"La procastinacion no es buena, es tu enemiga!"

 
Powered by Tags for Joomla