App.config en VB

Al utilizar un app.config para configurar la cadena de conexión a la base de datos la principal ventaja que tiene es que evitaras tener que recompilar tu aplicación si es que cambiar algun dato de la cadena de conexión, Ademas tambien esta la facilidad de modificarlos. Si en cada formulario usas la cadena de conexion, y un dia debes cambiar algo, tendrias que entrar a cada form y cambiar el valor, mientras que en My.Settings solo lo cambias una vez y esta listo.

El archivo de configuracion podrias editarlo con el notepad y como internamente es representado como xml
podras editar la configuracion y tu aplicacion en el cliente seguira funcionando sin tener que hacer un nueva compilacion y actualizacion en cada pc del usuario

ahora para guardar la cadena de conexión en un app.config ya sea en Vb o C# se siguen estos pasos, creamos un nuevo proyecto sea en VB o C# y luego desde el Solution Explorer damos click derecho sobre la aplicación y seleccionamos propiedades



luego nos vamos a la parte de Settings, colocamos un nombre y cambiamos el Type por Connection string, luego damos click sobre Value en el pequeño botón examinar que aparece al final





después aparece esta ventana para seleccionar el servidor y la base de datos a utilizar



Luego debemos añadir una referencia al proyecto, para esto click derecho sobre la aplicación y luego Add Reference y seleccionamos System.Configuration



ahora, el nombre que yo use para la conexion a la base de datos es: conexion, asi pues el app.config en VB queda asi:



y en C# queda asi:

La interfaz de la aplicacion ya sea en VB o C# quedará de la siguiente manera:


App.config en VB

La ventana de la palicacion ejecutandose se muestra a continuacion, tambien se dan las opciones de utilizar my.settings, un modulo o una clase para conectarse de acuerdo a lo básico del ejemplo, las opciones aparecen comentariadas con su indicación a la que vez que se entrega el código del modulo y de la clase para que funciones las opciones, recuérdese solo seleccionar una e importar el system.configuration

ImportsSystem.Data
ImportsSystem.Data.SqlClient
ImportsSystem.Configuration
PublicClass Form1
    Dim cnn As SqlConnection
    Dim da As SqlDataAdapter
    Dim dt As DataTable
    Dim bs As New BindingSource
    Dim k As New Class1  'necesario al utilizar la clase para conectarse
    Private Sub Form1_Load(ByVal sender AsSystem.Object, ByVale As System.EventArgs) Handles MyBase.Load
        Usingcnn = New SqlConnection(ConfigurationManager.ConnectionStrings("conexion").ConnectionString) 'conecta usando System.Configuration
            'Using cnn = New SqlConnection(My.Settings.conexion)  'conecta usando setings del app.config
            'Using cnn = New SqlConnection(connex) 'conecta con valores desde el modulo los que recypera desde el app.config
            'Using cnn = New SqlConnection(k.conexx) 'conecta con valores desde la clase los que recypera desde el app.config
            Using da = New SqlDataAdapter("select * from personal", cnn)
                Usingdt = New DataTable
                    da.Fill(dt)
                    bs.DataSource = dt
                    DataGridView1.DataSource = bs
                    BindingNavigator1.BindingSource = bs
                    TextBox1.DataBindings.Add("text", bs, "codigo")
                    TextBox2.DataBindings.Add("text", bs, "nombre")
                    TextBox3.DataBindings.Add("text", bs, "apellido")
                    TextBox4.DataBindings.Add("text", bs, "puesto")
                    TextBox5.DataBindings.Add("text", bs, "sueldo")
                EndUsing
            EndUsing
        End Using
    End Sub
End Class

El codigo del modulo es:
ImportsSystem.Data.SqlClient
ImportsSystem.Configuration
ModuleModule1
    'Public connex As String = My.Settings.conexion  'utilizando My.Settings
    Publicconnex As String= ConfigurationManager.ConnectionStrings("conexion").ConnectionString.ToString
End Module


El codigo de la clase es:


ImportsSystem.Data.SqlClient
ImportsSystem.Configuration
PublicClass Class1
    '    Public conexx As String = My.Settings.conexion  'Utilizando My.Settings
    Publicconexx As String= ConfigurationManager.ConnectionStrings("conexion").ConnectionString.ToString
End Class



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



App.config en C#

Aquí no esta la opcion del modulo ni la de My.Settings como en VB, asi que solo presento como alternativa el utilizar una clase, de nuevo la ventana de la aplicacion ejecutandose y el codigo tanto del formulario principal como de la clase que se utiliza como una opcion alternativa se muestra a continuacion


usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
namespaceAppconfigenC
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SqlDataAdapterda;
        DataTabledt;
        SqlConnectioncnn;
       //Class1 k= new Class1();    necesario para utilizar informacion desde la clase
        string conex = ConfigurationManager.ConnectionStrings["conexion"].ConnectionString;
        stringselect = "select * from personal";
                   
        privatevoid Form1_Load(objectsender, EventArgs e)
        {
            BindingSourcebs;
           using(cnn = new SqlConnection(conex))
           //using (cnn = new SqlConnection(k.cnn))  este utiliza a cnn en la clase Class1
            {
                cnn.Open();
                da = newSqlDataAdapter(select, conex);
                dt = newDataTable();
                da.Fill(dt);
                bs = newBindingSource();
                bs.DataSource = dt;
                bindingNavigator1.BindingSource = bs;
                dataGridView1.DataSource = bs;
                textBox1.DataBindings.Add("text", bs, "codigo");
                textBox2.DataBindings.Add("text", bs, "nombre");
                textBox3.DataBindings.Add("text", bs, "apellido");
                textBox4.DataBindings.Add("text", bs, "puesto");
                textBox5.DataBindings.Add("text", bs, "sueldo");
            }
        }
    }
}



El codigo de la clase es:


usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Configuration;
usingSystem.Data.SqlClient;
namespaceAppconfigenC
{
    class Class1
    {
       public string cnn = ConfigurationManager.ConnectionStrings["conexion"].ConnectionString.ToString();
    }
}

Brak komentarzy