CONEXIÓN A BASE DE DATOS Conexión a la base de datos con Access. Paso 1: Crear la base de datos y tabla en access Crear una base de datos en Access que se llame Crear una base de datos en Access que se llame ejercicio La tabal se debe de llamar uno y con los campos id y nombre (id autonumerico y nombre texto) Llenar la tabla con por lo menos 4 registros, guardar los cambios y cerrar la base de datos ** Si tu maquina es de 64 bits deberás de escribir en ejecutar esta ruta y así comenzar crear la cadena de conexión con los demás pasos.** c:\Windows\SysWOW64\odbcad32.exe Paso 2: Crear la cadena de conexión para tener acceso a la base de datos de Acees. Ir a Panel de Control y elegir la opción Herramientas administrativas Elegir la opción Elegir DSN de sistema Dar clic en agregar y elegir como origen de datos Microsoft Access .mdf y .accdb **En caso de que la base de datos este en SQLServer ese deberá de ser el motor de base de datos que se deberá de elegir, el asistente es muy similar solo hay que indicar como nombre del servidor de preferencia solo escribir un punto . para sindicarle que es de manera local y activar el check donde dice change de default database y elegir del combobox la base de datos a lña que te quieres conectar ** Todo el código del proyecto no camb ia solo cambiaria el nombre de la cadena de conexión Y dar clic en finalizar Escribir como nombre de origen de datos cadena3 y en el botón seleccionar de la base de datos buscar la base de datos que se creó en el paso uno que se llama ejercicio y muestra la ruta de la base de datos. Dar clic en aceptar y nuevamente dar clic en aceptar observe que en la lista de orígenes de datos ya agrego esta cadena de conexión cadena3. Paso 3. Diseñar el formulario en C# Dar doble clic en el formulario y escribir el siguiente código using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.Odbc; namespace conexion3 { public partial class Form1 : Form { OdbcConnection conexion; /* Se declaro una variable de tipo Odbcconection que se llama conexión es la que hará referencia a la conexión a la base de datos */ OdbcCommand comando; /* Se declara una variable de tipo OdbcCommand que se llama comando la cual guardara los querys o consultas realizadas con instrucciones de sql */ OdbcDataReader leer; /* Se declara una variable de tipo OdbcDataReader que se llama leer la cual se utiliza para leer datos de la tabla correspondiente a la base de datos a la cual se hace referencia en la conexión a la base de datos */ public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { conexion = new OdbcConnection("DSN=cadena3;"); /* Se crea un objeto de tipo OdbcConnection en el cual se especifica la cadena de conexión “DSN=cadena3” que es la que se creo en el panel de control en las Herramientas adminstrativas y esta se queda en la variable conexión */ conexion.Open(); //se abre la conexion comando = new OdbcCommand("select * from uno", conexion); /* Se crea un objeto de tipo OdbcCommand el cual trae una consulat de sql (select * from uno –que muestre todos los regsitros de la tabla uno --) y esta hace referencia a la cadena de conexión la cual esta guardada en la variable conexión */ leer = comando.ExecuteReader(); /* Executa la lectura de la variable commando(es decir ejecuta la consulta de sql especificada en la linea anterior - select * from uno-) y el resultado de la lectura de datos los deja en la variable leer */ while (leer.Read()) //Mientras se esten leyendo los datos { comboBox1.Items.Add(leer.GetInt32(0).ToString()); /* Agrega elementos al combobox1, va a agregar los elementos que se hayan leído con la variable leer y el GetInt32(0) hace referencia al primer campo de la tabla que es de tipo entero en este caso el campo Id) y se le agrega ToSting() debido a que los combobox solo aceptan cadenas de caracteres ye l campo Id es de tipo entero */ comboBox2.Items.Add(leer.GetString(1)); /* Agrega elementos al combobox2, va a agregar los elementos que se hayan leído con la variable leer y el GetString(1) hace referencia al segundo campo de la tabla que es de tipo texto en este caso el campo nombre) y ya no se le agrega ToSting() debido a que el campo nombre ya es de tipo texto) */ /* Los campos de una tabla se ven como si fueran arreglos, es decir el elemento 0 hace referencia al primer campo de la tabla, el elemento 1 hace referencia al segundo campo de la tabla y así sucesivamente con los demás campos */ } leer.Close(); //cierra el OdbcDataReader conexion.Close(); //cierra la conexión a la base de datos } private void button1_Click(object sender, EventArgs e) //BOTON INSERTAR { conexion.Open(); comando = new OdbcCommand("insert into uno(id,nombre)values("+textBox1.Text+", '"+textBox2.Text+"')",conexion); /*crea un objeto de tipo OdbcCommand el cual trae el siguiente query o consulat de sql (("insert into uno(id,nombre)values("+textBox1.Text+", '"+textBox2.Text+"') la cual especifica inserta dentro de la tabla uno a los campos id y nombre los siguientes valores lo que se escriba en la caja de texto1 corresponde al campo Id y la caja de texto2 lo que corresponde al campo nombre. El Id por ser de tipo numérico se inserta de la siguiente manera "+textBox1.Text+" solo se especifica entre comillas la caja de texto y para insertar el campo nombre se inserta de la siguiente manera '"+textBox2.Text+"' se especifiac una comilla simple ‘ seguido de comillas dobles y el nombre de la caja de texto y asi mismo se cierra esta misma caja asie s como se insertan campos de tipo texto */ comando.ExecuteNonQuery(); /* Se ejecuta la consulta insert que se especifico en la variable comando */ leer.Close(); conexion.Close(); } private void button2_Click(object sender, EventArgs e) //BOTON REFRESCAR { conexion.Open(); comboBox1.Items.Clear(); //limpia los elementos del combobox comboBox2.Items.Clear(); comando = new OdbcCommand("select * from uno", conexion); leer = comando.ExecuteReader(); while (leer.Read()) { comboBox1.Items.Add(leer.GetInt32(0).ToString()); comboBox2.Items.Add(leer.GetString(1)); } leer.Close(); conexion.Close(); } private void button3_Click(object sender, EventArgs e) //BOTON ELIMINAR { conexion.Open(); comando = new OdbcCommand("delete from uno where id=" + textBox1.Text, conexion); /* Crea un objeto de tipo OdbcCommand el cual trae una consulta de sql para eliminar un registro de la tabla (delete from uno where id=" + textBox1.Text) esta consulta dice elimina de la tabla uno el registro donde el Id sea igual al que se escriba en la caja de texto1 */ comando.ExecuteNonQuery(); /* Se ejecuta la consulta delete que se especifico en la variable comando */ conexion.Close(); } private void button4_Click(object sender, EventArgs e) //BOTON ACTUALIZAR { conexion.Open(); comando = new OdbcCommand("update uno set nombre = '" + textBox2.Text + "' where id = " + textBox1.Text +"", conexion); /* un " al Crea un objeto de tipo OdbcCommand el cual trae una consulta sql para actualizar registro de la tabla (update uno set nombre = '" + textBox2.Text + "' where id = + textBox1.Text +"") la cual nos dice actualiza la tabla uno y asignale o ponle campo nombre lo que se escriba en la caja de texto2 – la cual esta entre la cimilla simple y las doble ya que el campo nombre es de tipo texto en la tabla – donde el campo Id sea igual a lo que se escriba en la caja de texto1 –ese campo solo lleva las comillas doble s” por ser un campo de tipo numérico */ comando.ExecuteNonQuery(); /* Se ejecuta la consulta update que se especifico en la variable comando */ conexion.Close(); } } }