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
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:
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
El codigo de la clase es:
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
El codigo de la clase es:
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
Imports
System.Data
Imports
System.Data.SqlClient
Imports
System.Configuration
Public
Class 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 As
System.Object, ByVal
e As System.EventArgs)
Handles MyBase.Load
Using
cnn = 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)
Using
dt = 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")
End
Using
End
Using
End Using
End Sub
End Class
El codigo del modulo es:
Imports
System.Data.SqlClient
Imports
System.Configuration
Module
Module1
'Public connex As
String = My.Settings.conexion
'utilizando My.Settings
Public
connex As String
= ConfigurationManager.ConnectionStrings("conexion").ConnectionString.ToString
End Module
El codigo de la clase es:
Imports
System.Data.SqlClient
Imports
System.Configuration
Public
Class Class1
' Public conexx As String =
My.Settings.conexion 'Utilizando
My.Settings
Public
conexx As String
= ConfigurationManager.ConnectionStrings("conexion").ConnectionString.ToString
End Class
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
App.config en C#
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.Data.SqlClient;
using
System.Configuration;
namespace
AppconfigenC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlDataAdapter
da;
DataTable
dt;
SqlConnection
cnn;
//Class1 k= new Class1(); necesario para utilizar informacion desde la
clase
string conex = ConfigurationManager.ConnectionStrings["conexion"].ConnectionString;
string
select = "select * from personal";
private
void Form1_Load(object
sender, EventArgs e)
{
BindingSource
bs;
using
(cnn = new SqlConnection(conex))
//using
(cnn = new SqlConnection(k.cnn)) este
utiliza a cnn en la clase Class1
{
cnn.Open();
da = new
SqlDataAdapter(select, conex);
dt = new
DataTable();
da.Fill(dt);
bs = new
BindingSource();
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:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Configuration;
using
System.Data.SqlClient;
namespace
AppconfigenC
{
class Class1
{
public string cnn = ConfigurationManager.ConnectionStrings["conexion"].ConnectionString.ToString();
}
}
Gracias. esta publicación me fue muy útil. pude conectarme a la base de datos perfectamente. y luego podre cambiar los datos si es necesario. saludos.
ResponderEliminar