Download CONEXIÓN A BASE DE DATOS Conexión a la base de datos con

Document related concepts
no text concepts found
Transcript
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();
}
}
}