tema 7 practica ado.net conectado

10
UNIVERSIDAD DE EL SALVADOR Página 1 UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE DEPARTAMENTO DE INGENIERIA ESTRUCTURA DE DATOS Practica de ADO.NET en modo conectado Objetivos de aprendizaje: Al terminar la práctica usted podrá: Conocer las ventajas y desventajas de trabajar con bases de datos conectadas Comprender la estructura de datos en modo conectado Aprender a usar los objetos: Connection, Command y DataReader Aprender a utilizar las sentencias select, insert, delete y update Información Básica: El ADO.NET es un conjunto de componentes del software que pueden ser usados para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NET Framework. Es comúnmente usado para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo. Escenario: Esta práctica consiste en desarrollar o simular una agenda electrónica utilizando algunos elementos de ADO.NET en modo conectado (Connection, Command y DataReader), en la que se tendrá que agregar, modificar, eliminar y consultar contactos de una base de datos llamada “agenda.mdf” previamente creada. Tarea 1: Creación de la interfaz gráfica PASO 1: Abrir Visual Basic .Net y crear un nuevo proyecto y guardarlo con el nombre de Laboratorio7 PASO 2: Luego insertamos la clase que se adjuntó en la guía, para ello nos vamos al panel Explorador de Soluciones, hacemos clic derecho en nombre del proyecto (Laborario7), seguimos los pasos mostrados en la figura y buscamos el archivo.

Upload: douglas-sanchez

Post on 12-Aug-2015

99 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 1

UNIVERSIDAD DE EL SALVADOR

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE

DEPARTAMENTO DE INGENIERIA

ESTRUCTURA DE DATOS

Practica de ADO.NET en modo conectado

Objetivos de aprendizaje: Al terminar la práctica usted podrá:

Conocer las ventajas y desventajas de trabajar con bases de datos conectadas

Comprender la estructura de datos en modo conectado

Aprender a usar los objetos: Connection, Command y DataReader

Aprender a utilizar las sentencias select, insert, delete y update

Información Básica:

El ADO.NET es un conjunto de componentes del software que pueden ser usados para acceder a datos y a

servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el

Microsoft .NET Framework. Es comúnmente usado para acceder y para modificar los datos almacenados en

un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos

en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la tecnología ActiveX

Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto

enteramente nuevo.

Escenario:

Esta práctica consiste en desarrollar o simular una agenda electrónica utilizando algunos elementos de

ADO.NET en modo conectado (Connection, Command y DataReader), en la que se tendrá que agregar,

modificar, eliminar y consultar contactos de una base de datos llamada “agenda.mdf” previamente creada.

Tarea 1: Creación de la interfaz gráfica

PASO 1: Abrir Visual Basic .Net y crear un nuevo proyecto y guardarlo con el nombre de Laboratorio7

PASO 2: Luego insertamos la clase que se adjuntó en la guía, para ello nos vamos al panel Explorador de

Soluciones, hacemos clic derecho en nombre del proyecto (Laborario7), seguimos los pasos mostrados en la

figura y buscamos el archivo.

Page 2: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 2

PASO 3: Luego vamos a trabajar con el formulario creado por default, llamado “Form 1.vb” e insertamos los

objetos que se visualizan a continuación.

Page 3: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 3

PASO 4: Especificar un nombre para cada elemento insertado, los textbox, button y DataGridView colocar el

nombre en la propiedad name, las label en la propiedad text

Objeto Propiedad

Name Text TabIndex

TextBox1 txt_nom 0

TextBox2 txt_ape 1

TextBox3 txt_tel 2

TextBox4 txt_dir 3

TextBox5 txt_email 4

Label1 lbl_titulo AGENDA ELECTRONICA

Label2 lbl_nom Nombres

Label3 lbl_ape Apellidos

Label4 lbl_tel Teléfono

Label5 lbl_dir Dirección

Label6 lbl_email E-mail

Button1 btn_agre Agregar 5

Button2 btn_con Consultar 6

Button3 btn_mod Modificar 7

Button4 btn_elim Eliminar 8

DataGridView dgv_contactos 9

PASO 5: Agregar encabezados y columnas al DataGridView, para ello seleccionamos el datagridview y

hacemos clic en una pequeña flecha que aparece en la parte superior derecha de dicho objeto y le decimos

agregar columna…

Page 4: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 4

PASO 6: En el siguiente cuadro que aparece insertar 5 clumnas con los nombres que se muestran en el

formulario del paso 2, pondrán el mismo nombre en la parte de Texto de encabezado, luego le dan acepar y

repiten el proceso 4 veces más con los nombres respectivos de las columnas.

PASO 7: Realizamos lo mismo mencionado en el paso 3, solo que en vez de agregar columna le damos editar

columnas…, seleccionamos cada columna y modificamos la propiedad AutoSizeMode a DisplayedCells, para

que cada columna se ajuste al contenido y no muestre la información incompleta.

Esto es todo lo que hay que hacer en este formulario en cuanto a su interfaz, ahora vamos a crear la interfaz

para el siguiente formulario que lo utilizaremos para modificar los datos de los contactos previamente

almacenados en la base de datos.

Page 5: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 5

PASO 8: Insertar un formulario con el nombre de ModificarContacto e insertamos los controles mostrados a

continuación.

Las Label y TextBox son los mismos del formulario anterior, solo insertamos los botones Modificar y Salir

(btn_mod, btn_salir) en la propiedad name y (Modificar, Salir) en la propiedad Text de cada botón

respectivamente.

Tarea 2: Codificación del Primer formulario (Form1)

PASO 1: Crear los siguientes métodos, hacemos clic derecho en el formulario y seleccionamos la opción ver

código

Private conexion As SqlConnection Private comando As SqlCommand Private lector As SqlDataReader Private fila As Integer = 0 Dim tel As String

'este procedimiento se crea con el fin de actualizar el datagridview cada vez que se inserta, 'consulta, modifica y se elimina un contacto Public Sub llenarDaraGrid() Dim llenarDatos As New Operaciones Dim condi As Boolean fila = 0 llenarDatos.consulta("select * from contactos order by apellidos") condi = llenarDatos.lector.Read() Me.dgv_contactos.Rows.Clear() While (condi) dgv_contactos.Rows.Add() Me.dgv_contactos.Item(0, fila).Value = llenarDatos.lector("nombres") Me.dgv_contactos.Item(1, fila).Value = llenarDatos.lector("apellidos") Me.dgv_contactos.Item(2, fila).Value = llenarDatos.lector("telefono") Me.dgv_contactos.Item(3, fila).Value = llenarDatos.lector("direccion") Me.dgv_contactos.Item(4, fila).Value = llenarDatos.lector("email") condi = llenarDatos.lector.Read() fila += 1

Page 6: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 6

End While llenarDatos.conexion.Close() llenarDatos.comando.Dispose() End Sub

'este método se utiliza para buscar un solo registro por el numero de teléfono en la base de 'datos y mostrarlo en el datagridview

Public Function consultarDatos() As Integer Dim consul As New Operaciones Dim validar As Boolean Try tel = InputBox("Introduzca el número de telefono", "Consultar") If tel <> Nothing Then consul.consulta("select * from contactos WHERE telefono=" & CType(tel, Integer)) validar = consul.lector.Read() If validar = True Then dgv_contactos.Rows.Clear() Me.dgv_contactos.Item(0, 0).Value = consul.lector("nombres") Me.dgv_contactos.Item(1, 0).Value = consul.lector("apellidos") Me.dgv_contactos.Item(2, 0).Value = consul.lector("telefono") Me.dgv_contactos.Item(3, 0).Value = consul.lector("direccion") Me.dgv_contactos.Item(4, 0).Value = consul.lector("email") consul.conexion.Close() consul.comando.Dispose() Return 1 Else MsgBox("Este contacto no existe ", , "Contacto no encontrado") End If End If Catch ex As Exception MsgBox("Este contacto no existe ", , "Contacto no encontrado") Return -1 End Try End Function 'metodo para limpiar los campos de texto cada vez que se inserta un Nuevo registro Public Sub limpiar() txt_nom.Text = Nothing txt_ape.Text = Nothing txt_tel.Text = Nothing txt_dir.Text = Nothing txt_email.Text = Nothing End Sub

PASO 2: Codificar el evento load del formulario para que cuando se compile cargue en el datagridview todos

los contactos almacenados en la base de datos, para ello solo dar doble clic sobre el formulario y digitar el

siguiente código.

llenarDaraGrid()

PASO 3: Hacer doble clic en el botón agregar para entrar en el evento click de dicho botón y digitamos el

siguiente código.

'declaracion de variables

Page 7: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 7

Dim resp As Integer Dim operacion As New Operaciones Dim condi As Boolean fila = 0 'verificar que no hayan campos vacios

If (Me.txt_nom.Text = "" Or Me.txt_ape.Text = "" Or Me.txt_tel.Text = "" Or Me.txt_dir.Text = "" Or Me.txt_email.Text = "") Then

MsgBox("Verifique que no hallan campos vacíos", , "Campos vacíos") Exit Sub End If

'llena las propiedades de la clase Operaciones (nombres,apellidos,teléfono,dirección y email) 'para luego insertar los datos

operacion.preparar_propiedades(Me.txt_nom.Text, Me.txt_ape.Text, CType(Me.txt_tel.Text, Integer), Me.txt_dir.Text, Me.txt_email.Text)

'se inserta el registro con el método AgregarRegistro que se encuentra en la clase Operaciones

resp = operacion.agregarRegistro() 'si se inserta correctamente devuelve 1 y sino devuelve -1

If resp = 1 Then MsgBox("Contacto agregado", , "Agregado") Else MsgBox("El contacto no se pudo guardar, verifique que no sea el mismo telefono", , "Error") Exit Sub End If

'cerramos la conexión abiera

operacion.conexion.Close() operacion.comando.Dispose()

'luego lo que hacemos es cargar de nuevo todos los contactos en el DataGridView para actuali- 'zarlo con el nuevo contacto insertado

llenarDaraGrid() 'limpiamos los campos después de haber insertado el contacto y colocamos el cursor en el campo 'del nombre

limpiar() Me.txt_nom.Focus()

PASO 4: Ahora vamos a proceder a codificar el botón consultar para buscar un contacto, introduciendo su

número de teléfono para mostrarlo en el datagridview. Como ya codificamos un método llamado

consultarDatos() solo lo invocamos para buscar dicho registro.

consultarDatos()

PASO 5: Luego codificamos el botón modificar, en esta parte lo que hacemos es crear un nuevo objeto del

mismo tipo del formulario modicarContacto para luego mandarlo a llamar por medio de el comando

showDialog(), lo cual implica que no se puede realizar ninguna otra operación en el formulario de inicio hasta

que se cierre este nuevo formulario abierto. A diferencia de show() que si permite realizar acciones en ambos.

ModificarContacto.ShowDialog() llenarDaraGrid()

Page 8: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 8

PASO 6: Y lo último que vamos a realizar en este formulario es codificar el botón eliminar, lo único que hacemos es pedirle al usuario el número de teléfono para eliminar el contacto. Primero se pide el número de teléfono, luego se verifica que exista en la base de datos con el método consultarDatos y por último si existe, se ejecuta la instrucción SQL (DELETE) para borrar dicho registro Dim eliminar As New Operaciones Dim resul As Integer 'tel = InputBox("Introduzca el telefono del contacto que quiere eliminar", "Eliminar") resul = consultarDatos() If tel <> "" And resul = 1 Then eliminar.consulta("delete from contactos WHERE telefono=" & CType(tel, Integer)) MsgBox("Contacto eliminado", , "Eliminado") llenarDaraGrid() Else llenarDaraGrid() End If

Tarea 3: Codificación del Segundo formulario (ModificarContacto)

PASO 1: Lo primero que vamos a realizar en este formulario es declarar una función que también se encargue

de buscar el contacto en la base de datos, y coloque cada dato en los campos que hemos insertado en dicho

formulario para hacer los cambios respectivos. Para ello solo hacer clic derecho en el formulario y

seleccionamos la opción ver código y codificamos lo siguiente.

Dim tel As String Dim result As Integer Public Function CargarContacto() As Integer Dim consult As New Operaciones Try tel = InputBox("Introduzca el telefono del contacto a modificar", "Modificar") If tel <> "" Then consult.consulta("select * from contactos WHERE telefono=" & CType(tel, Integer)) consult.lector.Read() Me.txt_nom.Text = consult.lector("nombres") Me.txt_ape.Text = consult.lector("apellidos") Me.txt_tel.Text = consult.lector("telefono") Me.txt_dir.Text = consult.lector("direccion") Me.txt_email.Text = consult.lector("email") 'cerramos la conexión del objeto que creamos (consult)

consult.conexion.Close() consult.comando.Dispose() Return 1 Else Return -1 End If Catch ex As Exception

'si ocurre algún error, solo nos aseguramos de cerrar la conexión consult.conexion.Close() consult.comando.Dispose() Return -1 End Try End Function

Page 9: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 9

PASO 2: Seguidamente codificamos en el evento load del formulario, con esto lo que hacemos es nada más

llamar al método cargarconstacto() y verificar si el contacto existe o no en la base de datos. Para esto

hacemos doble clic en el formularioy codificar los siguiente.

result = CargarContacto() If (result = -1 And tel <> "") Then MsgBox("El contacto no existe", , "Error") Me.Dispose() Me.Close() ElseIf Not result = 1 Then Me.Dispose() Me.Close() End If

PASO 3: Luego procedemos a codificar el botón modificar. Lo que hace este código es sencillamente

modificar los datos mediante la instrucción UPDATE en el cual cargamos los nuevos valores que tienen los

campos de texto para actualizarlos en la base de datos, luego preguntamos si quiere modificar otro contacto,

si la respuesta es sí cargamos lo mismo que en el evento load de dicho formulario y sino solo cerramos el

formulario con me.close()

Dim modificar As New Operaciones Try

modificar.consulta("UPDATE contactos SET nombres='" & Me.txt_nom.Text & "', " & "apellidos='" & Me.txt_ape.Text & "', " & "telefono=" & CType(Me.txt_tel.Text, Integer) & ", " & "direccion='" & Me.txt_dir.Text & "'" & ", " & "email='" & Me.txt_email.Text & "'" & " Where telefono=" & CType(tel, Integer))

modificar.conexion.Close() modificar.comando.Dispose() MsgBox("Contacto modificado", , "Modificado") Catch ex As Exception MsgBox("El contacto no se pudo modificar. " & ex.Message, , "Error") End Try If (MsgBox("Desea modificar otro contacto", MsgBoxStyle.YesNo, "Continuar...")) = MsgBoxResult.Yes Then result = CargarContacto() If (result = -1 And tel <> "") Then MsgBox("El contacto no existe", , "Error") Me.Dispose() Me.Close() ElseIf Not result = 1 Then Me.Dispose() Me.Close() End If Else Me.Close() End If

PASO 4: Y lo último en esta parte es cerrar el formulario por si el usuario carga los datos a modificar pero

verifica que no necesita hacer ningún cambio, así que decide mejor salir.

Me.Close()

PASO 5: Presionar F5 para ejecutar y depurar el programa

Page 10: Tema 7 Practica ADO.net Conectado

UNIVERSIDAD DE EL SALVADOR Página 10

PREGUNTAS

1. ¿Cuáles son las ventajas de usar aplicaciones en modo conectado?

2. ¿Cuáles son las desventajas?

3. ¿Proporcione dos ejemplos en los cuales es indispensable usar aplicaciones en modo conectadas?

4. ¿Para qué sirve los objetos Connection, Command y DataReader?