Está en la página 1de 10

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 prctica 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

Informacin Bsica: 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 estn incluidas en el Microsoft .NET Framework. Es comnmente usado para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque tambin puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolucin de la tecnologa ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo. Escenario: Esta prctica consiste en desarrollar o simular una agenda electrnica 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: Creacin de la interfaz grfica 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 gua, 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.

UNIVERSIDAD DE EL SALVADOR

Pgina 1

PASO 3: Luego vamos a trabajar con el formulario creado por default, llamado Form 1.vb e insertamos los objetos que se visualizan a continuacin.

UNIVERSIDAD DE EL SALVADOR

Pgina 2

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 TextBox1 TextBox2 TextBox3 TextBox4 TextBox5 Label1 Label2 Label3 Label4 Label5 Label6 Button1 Button2 Button3 Button4 DataGridView Name txt_nom txt_ape txt_tel txt_dir txt_email lbl_titulo lbl_nom lbl_ape lbl_tel lbl_dir lbl_email btn_agre btn_con btn_mod btn_elim dgv_contactos Propiedad Text

TabIndex 0 1 2 3 4

AGENDA ELECTRONICA Nombres Apellidos Telfono Direccin E-mail Agregar Consultar Modificar Eliminar

5 6 7 8 9

PASO 5: Agregar encabezados y columnas al DataGridView, para ello seleccionamos el datagridview y hacemos clic en una pequea flecha que aparece en la parte superior derecha de dicho objeto y le decimos agregar columna

UNIVERSIDAD DE EL SALVADOR

Pgina 3

PASO 6: En el siguiente cuadro que aparece insertar 5 clumnas con los nombres que se muestran en el formulario del paso 2, pondrn el mismo nombre en la parte de Texto de encabezado, luego le dan acepar y repiten el proceso 4 veces ms 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 informacin 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.

UNIVERSIDAD DE EL SALVADOR

Pgina 4

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

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 botn respectivamente.

Tarea 2: Codificacin del Primer formulario (Form1) PASO 1: Crear los siguientes mtodos, hacemos clic derecho en el formulario y seleccionamos la opcin ver cdigo
Private Private Private Private Dim tel conexion As SqlConnection comando As SqlCommand lector As SqlDataReader fila As Integer = 0 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
UNIVERSIDAD DE EL SALVADOR Pgina 5

End While llenarDatos.conexion.Close() llenarDatos.comando.Dispose() End Sub 'este mtodo se utiliza para buscar un solo registro por el numero de telfono 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 nmero 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 Return -1 End Try End Function ", , "Contacto no encontrado")

'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 cdigo.
llenarDaraGrid()

PASO 3: Hacer doble clic en el botn agregar para entrar en el evento click de dicho botn y digitamos el siguiente cdigo.
'declaracion de variables
UNIVERSIDAD DE EL SALVADOR Pgina 6

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 vacos", , "Campos vacos") Exit Sub End If 'llena las propiedades de la clase Operaciones (nombres,apellidos,telfono,direccin 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 mtodo 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 conexin 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 despus 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 botn consultar para buscar un contacto, introduciendo su nmero de telfono para mostrarlo en el datagridview. Como ya codificamos un mtodo llamado consultarDatos() solo lo invocamos para buscar dicho registro.
consultarDatos()

PASO 5: Luego codificamos el botn 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 operacin 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()
UNIVERSIDAD DE EL SALVADOR Pgina 7

PASO 6: Y lo ltimo que vamos a realizar en este formulario es codificar el botn eliminar, lo nico que hacemos es pedirle al usuario el nmero de telfono para eliminar el contacto. Primero se pide el nmero de telfono, luego se verifica que exista en la base de datos con el mtodo consultarDatos y por ltimo si existe, se ejecuta la instruccin 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: Codificacin del Segundo formulario (ModificarContacto) PASO 1: Lo primero que vamos a realizar en este formulario es declarar una funcin que tambin 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 opcin ver cdigo 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 conexin del objeto que creamos (consult) consult.conexion.Close() consult.comando.Dispose() Return 1 Else Return -1 End If Catch ex As Exception 'si ocurre algn error, solo nos aseguramos de cerrar la conexin consult.conexion.Close() consult.comando.Dispose() Return -1 End Try End Function
UNIVERSIDAD DE EL SALVADOR Pgina 8

PASO 2: Seguidamente codificamos en el evento load del formulario, con esto lo que hacemos es nada ms llamar al mtodo 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 botn modificar. Lo que hace este cdigo es sencillamente modificar los datos mediante la instruccin 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 ningn cambio, as que decide mejor salir.
Me.Close()

PASO 5: Presionar F5 para ejecutar y depurar el programa


UNIVERSIDAD DE EL SALVADOR Pgina 9

PREGUNTAS 1. Cules son las ventajas de usar aplicaciones en modo conectado? 2. Cules 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?

UNIVERSIDAD DE EL SALVADOR

Pgina 10

También podría gustarte