Tutorial ado net desde 0.docx

15
Tutorial desde 0: Ejemplo básico de Acceso a datos usando ADO.Net feb 17 Publicado por nelson1212 Como dice el titulo del articulo “Desde 0”, si eres una persona con conocimientos avanzados sobre el tema, no te recomiendo leer los artículos que dicen desde “Cero”, ¿por que?, son para principiantes, personas que apenas se están iniciando en el mundo de la programación o personas avanzadas que necesiten aclarar alguna duda o simplemente mirar alternativas de solución a algún problema en particular, ¿y por que escribes cosas tan básicas? muchos en nuestros inicios, comenzamos a buscar artículos como estos (básicos), aunque parecen tontos, son los que nos permiten entender el funcionamiento del lenguaje y finalmente aprender algo nuevo para luego, “si” introducirnos a un nivel mas profundo, mucha gente que escribe en internet supone que todo el que lee sus artículos ya es un gurú, desconociendo la realidad de muchas personas que se están iniciando en esto. Explicación Abrimos Visual Studio 2005/2008 Creamos un nuevo proyecto

Transcript of Tutorial ado net desde 0.docx

Page 1: Tutorial ado net desde 0.docx

Tutorial desde 0: Ejemplo básico de Acceso a datos usando ADO.Netfeb 17

Publicado por nelson1212

Como dice el titulo del articulo “Desde 0”, si eres una persona con conocimientos avanzados sobre el tema, no te recomiendo leer los artículos que dicen desde “Cero”, ¿por que?, son para principiantes, personas que apenas se están iniciando en el mundo de la programación o personas avanzadas que necesiten aclarar alguna duda o simplemente mirar alternativas de solución a algún problema en particular, ¿y por que escribes cosas tan básicas? muchos en nuestros inicios, comenzamos a buscar artículos como estos (básicos), aunque parecen tontos, son los que nos permiten entender el funcionamiento del lenguaje y finalmente aprender algo nuevo para luego, “si” introducirnos a un nivel mas profundo, mucha gente que escribe en internet supone que todo el que lee sus artículos ya es un gurú, desconociendo la realidad de muchas personas que se están iniciando en esto.

Explicación

Abrimos Visual Studio 2005/2008

Creamos un nuevo proyecto

Page 2: Tutorial ado net desde 0.docx

Seleccionamos Visual C# – Windows – Aplicación para Windows, escribimos el nombre del proyecto en este caso he puesto AplicacionADO, por ultimo presionamos el botón aceptar

Al formulario que nos crea por defecto le cambiamos el nombre a frmPrincipal

Page 3: Tutorial ado net desde 0.docx

Tener cuidado con la extensión el archivo debe terminar en .cs (frmPrincipal.cs)

Al cuadro de confirmación que nos aparece presionamos el botón si

Page 4: Tutorial ado net desde 0.docx

Modificamos la propiedad text del formulario a: Formulario principal

Desde el ToolBox o cuadro de herramientas ubicado en la parte izquierda de Visual Studio agregamos un control MenuStrip

Creamos el siguiente menú:

Creamos el formulario estudiantes, haciendo clic derecho en el proyecto, desde el explorador de objetos como se muestra en la siguiente imagen:

Page 5: Tutorial ado net desde 0.docx

Al nuevo formulario lo llamaremos “frmEstudiantes” como se muestra a continuación:

El formulario frmEstudiantes deberá contener los siguientes elementos:

Objeto Propiedad ValorGroupBox1 (Dentro de este control irán todos los siguientes)

name GroupBox1

Text Información básica

Page 6: Tutorial ado net desde 0.docx

Labell name lblIdentificaciontext Identificación

TextBox1 name txtIdentificacionlabel2 name lblPri_nom

text Primer nombreTextBox2 name txtPri_nomlabel3 name lblSeg_nom

text Segundo nombreTextBox3 name txtSeg_nomlabel4 name lblPri_ape

text Primer apellidoTextBox4 name txtPri_apelabel5 name lblSeg_ape

text Segundo apellidoTextBox5 name txtSeg_apelabel6 name cboGenero

text GeneroComboBox1 name cboGeneroLabel7 name lblTelefono

text TeléfonoTextBox6 name txtTelefonoGroupBox1 (Dentro de este control irán todos los siguientes)

name GroupBox2

text Accionesbutton1 name btnPrimero

text <<button2 name btnAnterior

text <button3 name btnSiguiente

text >button4 name btnUltimo

text Ultimobutton5 name btnGuardartext Guardarbutton6 name btnEditartext Editarbutton7 name btnBuscartext Buscarbutton8 name btnEliminartext Eliminarbutton9 name btnCerrartext Cerrar

Page 7: Tutorial ado net desde 0.docx

El resultado de lo anterior deberá ser un formulario como el siguiente:

Código fuente del formulario:

using System;

using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;//Espaciode nombres requerido para interactuar con Sql Serverusing System.Data.SqlClient;namespaceApliacacionADO{public partial class frmEstudiantes : Form{//Instancias//Conexion objeto del tipo SqlConnection para conectarnos fisicamente a la base de datosSqlConnection Conexion = new SqlConnection();//Comando objeto del tipo SqlCommand para representar instrucciones SQL

Page 8: Tutorial ado net desde 0.docx

SqlCommand Comando;//Adaptador objeto del tipo SqlDataAdapter para para intercambiar datos entre una // fuente de datos (en este caso Sql Server) y un alamacen de datos (DataSet, DataTable,DataReader)SqlDataAdapter Adaptador=null;//Tabla objeto del tipo DataTable representa una colección de registros en memeria del clienteDataTable Tabla = new DataTable();//VariablesString Sql=“”; //Variable de tipo String para almacenar instrucciones SQL//Variable de tipo String para almacenar el nombre de la Instancia SQLServerString Servidor = @”(local)\SQLEXPRESS”; //Variable de tipo String para almacenar el nombre de la base de datos

String Base_Datos = “bd2010″; int indice=0;//Metodo Conectar *********************************************************************void Conectar(){try{//Para establecer la conexion con el servidor debemos usar el objeto Conexion//especificando a traves de su propiedad ConnectionString el nombre del servidor, la bases de datos//y el timpo de seguridadConexion.ConnectionString=“Data Source=”+Servidor+“;” + “Initial Catalog=”+Base_Datos+“;”+“Integrated security=true”;try//Bloque try catch para captura de exepciones en ejecución{Conexion.Open(); //Abrimos la conexión}catch (SqlException ex){MessageBox.Show(“Error al tratar de establecer la conexión ” + ex.Message);}}catch (SqlException ex){MessageBox.Show(“Error en la conexión: “+ex.Message);

Page 9: Tutorial ado net desde 0.docx

}}//*********************************************************************//Este método recibe como parámetro un índice correspondiente al registro a cargarvoid CargarDatos(int indice){if (Tabla.Rows.Count > 0) //Si el objeto Tabla posee registros procedemos a realizar la asignación{DataRow fila = Tabla.Rows[indice]; //Creamos una fila del Objeto Tabla//Asignamos los valores correspondientes a cada registrotxtIdentificacion.Text = fila["identificacion"].ToString();txtPri_nom.Text = fila["pri_nom"].ToString();txtSeg_nom.Text = fila["seg_nom"].ToString();txtPri_ape.Text = fila["pri_ape"].ToString();txtSeg_ape.Text = fila["seg_ape"].ToString();cboGenero.Text = fila["genero"].ToString();txtTelefono.Text = fila["telefono"].ToString();txtDireccion.Text = fila["direccion"].ToString();}else

{MessageBox.Show(“No hay registros para mostrar”);}}//Metodo para refrescar el DataTable despues de insertar,modificar o eliminar registrosvoid RefrescarDatos(){//seleccionamos todos los datos de la tabla personalSql = “select * from estudiantes”;Adaptador = new SqlDataAdapter(Sql,Conexion); //pasamos los parametros al adaptadorTabla.Clear(); //limpiamos antes de llenar el objeto oTablaAdaptador.Fill(Tabla); //llenamos la tabla}public frmEstudiantes() //Constructor de la clase{InitializeComponent();}private void frmEstudiantes_Load(object sender, EventArgs e){

Page 10: Tutorial ado net desde 0.docx

Conectar();//Cargamos el obejeto tabla con todos los registros de la tala estudiantesSql = “select * from estudiantes”;Adaptador = new SqlDataAdapter(Sql, Conexion);Adaptador.Fill(Tabla); //Llmamos el metodo CargarDatos para tan pronto se lance el formulario asigne//a las cajas de texto los valores correspondientes al primer registro de la tablaCargarDatos(indice);}private void btnGuardar_Click(object sender, EventArgs e){//Instrucción SQLSql = “insert into estudiantes(identificacion, pri_nom, seg_nom, pri_ape, seg_ape, genero, telefono”+“, direccion) values(@identificacion,@pri_nom,@seg_nom,@pri_ape,@seg_ape,@genero,@telefono,@direccion)”;//Pasamos al objeto comando la instrucción SQL a ejecutar y el objeto ConexionComando = new SqlCommand(Sql, Conexion);Comando.Parameters.AddWithValue(“@identificacion”,txtIdentificacion.Text);Comando.Parameters.AddWithValue(“@pri_nom”,txtPri_nom.Text);Comando.Parameters.AddWithValue(“@seg_nom”,txtSeg_nom.Text);Comando.Parameters.AddWithValue(“@pri_ape”,txtPri_ape.Text);Comando.Parameters.AddWithValue(“@seg_ape”,txtSeg_ape.Text);Comando.Parameters.AddWithValue(“@genero”, cboGenero.Text);Comando.Parameters.AddWithValue(“@telefono”,txtTelefono.Text);Comando.Parameters.AddWithValue(“@direccion”, txtDireccion.Text);try //Bloque try catch para captura de exepciones en ejecución{Comando.ExecuteNonQuery(); //Ejecutamos la instrucción SQLMessageBox.Show(“Registro insertado”);}catch (Exception ex){MessageBox.Show(“Error: “ + ex.Message);} }private void btnEditar_Click(object sender, EventArgs e){Sql = “update estudiantes set pri_nom=@pri_nom, seg_nom=@seg_nom, pri_ape=@pri_ape,seg_ape=@seg_ape, genero=@genero,

Page 11: Tutorial ado net desde 0.docx

telefono=@telefono, direccion=@direccion where identificacion=@identificacion”;Comando = new SqlCommand(Sql, Conexion); Comando.Parameters.AddWithValue(“@identificacion”,txtIdentificacion.Text);Comando.Parameters.AddWithValue(“@pri_nom”, txtPri_nom.Text);Comando.Parameters.AddWithValue(“@seg_nom”, txtSeg_nom.Text);Comando.Parameters.AddWithValue(“@pri_ape”, txtPri_ape.Text);Comando.Parameters.AddWithValue(“@seg_ape”, txtSeg_ape.Text);Comando.Parameters.AddWithValue(“@genero”, cboGenero.Text);Comando.Parameters.AddWithValue(“@telefono”, txtTelefono.Text);Comando.Parameters.AddWithValue(“@direccion”, txtDireccion.Text);try //Bloque try catch para captura de excepciones en ejecución{Comando.ExecuteNonQuery();MessageBox.Show(“Registro editado”);RefrescarDatos();}catch (Exception ex){MessageBox.Show(“Error: “ + ex.Message);} }private void btnCerrar_Click(object sender, EventArgs e){Conexion.Close();this.Dispose();}private void btnBuscar_Click(object sender, EventArgs e){if (Tabla.Rows.Count > 0){int id=int.Parse(txtIdentificacion.Text);DataRow[] fila = Tabla.Select(String.Format(“identificacion={0}”, id)); //Buscamos la fila deseadaif (fila.Length > 0)//Si se encontro la fila{indice = Tabla.Rows.IndexOf(fila[0]); //Obtenemos el indice la fila buscada//Pasamos el indice como parametro al metodo CargarDatosCargarDatos(indice);}else{MessageBox.Show(“El estudiantes que buscas no esta registrado”);}}

Page 12: Tutorial ado net desde 0.docx

else{MessageBox.Show(“No hay registros”);}}private void btnEliminar_Click(object sender, EventArgs e){Sql = “delete from estudiantes where identificacion=@identificacion”;Comando = new SqlCommand(Sql, Conexion);Comando.Parameters.AddWithValue(“@identificacion”, txtIdentificacion.Text);try//Bloque try catch para captura de excepciones en ejecución{Comando.ExecuteNonQuery();MessageBox.Show(“Registro eliminado”);RefrescarDatos();}catch (SqlException ex){MessageBox.Show(“Error: “ + ex.Message);}}private void btnPrimero_Click(object sender, EventArgs e){indice = 0;CargarDatos(indice);}private void btnAnterior_Click(object sender, EventArgs e){if (Tabla.Rows.Count > 0 && indice > 0){indice = indice – 1;CargarDatos(indice);}}private void btnSiguiente_Click(object sender, EventArgs e){if (indice < Tabla.Rows.Count -1){indice = indice + 1;CargarDatos(indice);}}private void btnUltimo_Click(object sender, EventArgs e){

Page 13: Tutorial ado net desde 0.docx

if (Tabla.Rows.Count > 0){indice = Tabla.Rows.Count – 1;CargarDatos(indice);}}}}Descargar código fuente del ejemplo:

http://cid-409e17cc56f28a81.skydrive.live.com/self.aspx/.Public/Punto%20Net/ApliacacionADO.net.zip