Página 1 de 10 Objetivo: Tema: CONEXIÓN CON BASES DE DATOS USANDO VB Y ADO.NET Identificar claramente los elementos necesarios para establecer una conexión con un motor de bases de datos haciendo uso de la programación Orientada a Objetos en el lenguaje de Programación Visual Basic.Net I. CREACIÓN DEL PROYECTO.NET TRES CAPAS 1. En la opción Nuevo proyecto de Visual Studio seleccione las opciones: Otros tipos de proyecto Solución En Blanco, establezca como nombre de solución. AplicacionTresCapas 2. En el explorador de soluciones haga click derecho sobre la solución, escoja la opción agregar Nueva Carpeta de Soluciones, agregue tres nuevas carpetas y colóqueles los nombres Presentacion, Logica y Persistencia. 3. En el explorador de soluciones haga click derecho sobre la carpeta llamada Presentacion, escoja la opción agregar nuevo proyecto, agregue una nueva aplicación para Windows (VB) y nómbrela Presentacion 4. En el explorador de soluciones haga click derecho sobre la carpeta llamada Logica, escoja la opción agregar nuevo proyecto, agregue una nueva Biblioteca de Clases (VB) y nómbrela Logica. 5. Finalmente El proyecto debe verse similar a como se muestra a continuación: II. CAPA DE PERSISTENCIA ( Creación De La Base De Datos ) Utilizando Microsoft SQL Server cree una base de datos con el nombre Directorio. En ella cree una tabla con el nombre clientes con las siguientes características: Nombre campo Tipo de datos Primary Key (PK) Id_Cliente Int > (Autonumerico) Identificacion numeric(18, 0) Nombre varchar(50) Apellido varchar(50) Fijo numeric(18, 0) Celular numeric(18, 0)
Página 2 de 10 La tabla la puede crear desde el Explorador de Objetos de SQL Server ejecutando la sentencia SQL que se muestra a continuación: CREATE TABLE Clientes ( Id_Cliente int PRIMARY KEY IDENTITY(1,1), Identificacion numeric(18, 0), Nombre varchar(50), Apellido varchar(50), Fijo numeric(18, 0), Celular numeric(18, 0) ) III. CAPA DE LOGICA DEL NEGOCIO ( Lógica de la Aplicación ): La capa de lógica del negocio consta de dos clases definidas así: 1. Desde el explorador de soluciones de Visual Studio.Net, en la parte de la solución llamada Logica agregue una nueva Clase y llámela Conexion. Ubique cada bloque de código para escribir las instrucciones según se muestra a continuación: Imports System.Data Imports System.Data.SqlClient Public Class Conexion Private _sentenciasql As String Private _mensaje As String Public Property Mensaje() As String Return _mensaje Set(ByVal value As String) _mensaje = value
Página 3 de 10 Public Sub SetSentencia(ByVal sentencia As String) _sentenciasql = sentencia Dim conn As SqlConnection Dim mitran As SqlTransaction Public Sub New() conn = New SqlConnection() 'Cadenas de conexión con el servidor SQL 'Forma 1: Autenticacion De Windows Dim cadenaconexion As String = "Data Source=Nombre_Servidor;Initial Catalog=Nombre_BDD; Integrated Security=True" 'Forma 2: Autenticacion De SQL Server "server = Nombre_Servidor;database = Nombre_BDD;uid = sa;pwd = nessuper@123"; conn = New SqlConnection(cadenaconexion) Public Function ConsultarSQL() As DataSet conn.open() Dim objres As SqlDataAdapter objres = New SqlDataAdapter(_sentenciaSQL, conn) Dim datos As DataSet = New DataSet() objres.fill(datos, "TablaConsultada") Mensaje = "La consulta de datos fue Exitosa" Return datos Catch MiExc As Exception Dim datos2 As DataSet = New DataSet() Mensaje = "Se presento el Siguiente Error: " + MiExc.Message Return datos2 Finally conn.close() Public Function EjecutarSQL() As Boolean 'Creación de un Objeto de tipo comando Dim micomando As SqlCommand = New SqlCommand() micomando.connection = conn conn.open() 'Usando Objeto de tipo transacción se inicia la ejecucion SQL mitran = conn.begintransaction(isolationlevel.readcommitted) micomando.connection = conn
Página 4 de 10 micomando.transaction = mitran micomando.commandtext = _sentenciasql micomando.executenonquery() ' Se Confirma la Transacción mitran.commit() Mensaje = "Proceso Ejecutado con Exito" Return True Catch exec As Exception mitran.rollback() Mensaje = "Se presento el siguiente error: " + exec.message Return False Finally conn.close() End Class 2. Desde el explorador de soluciones en la parte de la solución llamada Logica agregue una nueva Clase y llámela Cliente. Ubique cada bloque de código para escribir las instrucciones según se muestra a continuación: Public Class Cliente Inherits Conexion 'Se define la Herencia desde la clase Conexion Private _identificacion As Long Private _nombre As String Private _apellido As String Private _fijo As Long Private _celular As Long Public Property Identificacion() As Long Return _identificacion Set(ByVal value As Long) _identificacion = value Public Property Nombre() As String Return _nombre Set(ByVal value As String) _nombre = value
Página 5 de 10 Public Property Apellido() As String Return _apellido Set(ByVal value As String) _apellido = value Public Property Fijo() As Long Return _fijo Set(ByVal value As Long) _fijo = value Public Property Celular() As Long Return _celular Set(ByVal value As Long) _celular = value Public Function InsertarCliente() As Boolean Dim cadenasqlinsertar As String = "INSERT INTO Clientes (identificacion,nombre,apellido,fijo,celular) VALUES (" & Me._identificacion & ",'" & Me._nombre & "','" & Me._apellido & "'," & Me._fijo & "," & Me._celular & ")" SetSentencia(cadenaSQLInsertar) Return EjecutarSQL() Public Function ConsultarCliente(ByVal identificacion As String) As DataSet Dim cadenasqlconsultar As String = "SELECT * FROM Clientes WHERE identificacion = " & identificacion & "" SetSentencia(cadenaSQLConsultar) Return ConsultarSQL()
Página 6 de 10 Public Function ConsultarTodosClientes() As DataSet Dim cadenasqlconsultar As String = "SELECT * FROM Clientes ORDER BY Id_Cliente ASC" SetSentencia(cadenaSQLConsultar) Return ConsultarSQL() Public Function ActualizarCliente() As Boolean Dim cadenasqlactualizar As String = "UPDATE Clientes SET Nombre = '" & Me._nombre & "', Apellido = '" & Me._apellido + "',Fijo=" & Me._fijo + ",Celular=" + Me._celular + " WHERE (identificacion= " & Me._identificacion & ")" SetSentencia(cadenaSQLActualizar) Return EjecutarSQL() Public Function EliminarCliente(ByVal identificacion As String) As Boolean Dim cadenasqleliminar As String = "DELETE FROM Clientes WHERE identificacion = " & identificacion & "" SetSentencia(cadenaSQLEliminar) Return EjecutarSQL() End Class IV. CAPA DE PRESENTACIÓN ( Interfaz Gráfica de Usuario ) La capa de presentación consta de un formulario con tres pestañas distribuidas así:
Página 7 de 10 1. Desde el explorador de soluciones en la parte de la solución llamada Presentacion y dentro del submenú llamado References escoja la opción agregar referencia. En la ventana Agregar Referencia escoja la pestaña Proyectos y seleccione Logica en nombre de proyecto, finalmente presione click en el botón aceptar. 2. En Formulario Ubique cada bloque de código (Controles y Eventos) para escribir las instrucciones según se muestra a continuación: Imports Logica Public Class Form1 'Boton Ingresar Petaña 1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ObjCliente.Identificacion = TextBox1.Text ObjCliente.Nombre = TextBox2.Text ObjCliente.Apellido = TextBox3.Text ObjCliente.Fijo = TextBox4.Text ObjCliente.Celular = TextBox5.Text Dim insertarok As Boolean = ObjCliente.InsertarCliente() If insertarok = True Then MessageBox.Show("Los datos del nuevo cliente fueron insertados correctamente")
Página 8 de 10 TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" MessageBox.Show("No se han podido ingresar los datos debido al siguiente Error: " ObjCliente.Mensaje) Catch ex As Exception MsgBox("No se han podido ingresar los datos debido al siguiente Error: " & ex.message) 'Boton Consultar Pestaña 2 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim DatosCliente As DataSet = ObjCliente.ConsultarCliente(TextBox6.Text) Dim numregistros As Integer = DatosCliente.Tables("TablaConsultada").Rows.Count If numregistros = 0 Then MessageBox.Show("No existe en la Base de Datos Cliente con esta identificación") TextBox7.Text = DatosCliente.Tables("TablaConsultada").Rows(0)("Nombre").ToString() TextBox8.Text = DatosCliente.Tables("TablaConsultada").Rows(0)("Apellido").ToString() TextBox9.Text = DatosCliente.Tables("TablaConsultada").Rows(0)("Fijo").ToString() TextBox10.Text = DatosCliente.Tables("TablaConsultada").Rows(0)("Celular").ToString() Catch ex As Exception MsgBox("No se ha podido efectuar la consulta debido al siguiente Error: " & ex.message)
Página 9 de 10 'Boton Actualizar Pestaña 2 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ObjCliente.Identificacion = TextBox6.Text ObjCliente.Nombre = TextBox7.Text ObjCliente.Apellido = TextBox8.Text ObjCliente.Fijo = TextBox9.Text ObjCliente.Celular = TextBox10.Text Dim ActualizarOK As Boolean = ObjCliente.ActualizarCliente() If ActualizarOK = True Then MessageBox.Show("Los datos de este cliente fueron actualizados correctamente") TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" MessageBox.Show("No se pudo Actualizar los datos debido al siguiente Error: "ObjCliente.Mensaje) Catch ex As Exception MsgBox("No se pudo Actualizar los datos debido al siguiente Error: " & ex.message) Boton Eliminar Pestaña 2 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim EliminarOK As Boolean = ObjCliente.EliminarCliente(TextBox6.Text) If EliminarOK = True Then MessageBox.Show("Los datos de este cliente fueron Eliminados correctamente") TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" MessageBox.Show("No se ha podido eliminar este cliente debido al siguiente Error: " & ObjCliente.Mensaje)
Página 10 de 10 Boton Consultar Pestaña 3 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim DatosCliente As DataSet = ObjCliente.ConsultarCliente(textBox11.Text) Dim numregistros As Integer = DatosCliente.Tables("TablaConsultada").Rows.Count If numregistros = 0 Then MessageBox.Show("No existe en la Base de Datos Cliente con esta identificación") DataGridView1.DataSource = DatosCliente.Tables("TablaConsultada") Catch ex As Exception MsgBox("No se ha podido efectuar la consulta debido al siguiente Error: " & ex.message) Boton Ver Todos Pestaña 3 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim DatosCliente As DataSet = ObjCliente.ConsultarTodosClientes() Dim numregistros As Integer = DatosCliente.Tables("TablaConsultada").Rows.Count If numregistros = 0 Then MessageBox.Show("No hay ningun Cliente en la Base de Datos") DataGridView1.DataSource = DatosCliente.Tables("TablaConsultada") TALLER: Realice una aplicación usando Visual Basic.Net y Motor de Base de Datos SQL Server que satisfaga los siguientes requerimientos de relacionados con una biblioteca escolar: 1. Ingresar, consultar, actualizar y eliminar los datos de la institución educativa(colegio) 2. Ingresar, consultar, actualizar y eliminar los datos de la biblioteca 3. Ingresar, consultar, actualizar y eliminar materias o asignaturas 4. Ingresar, consultar, actualizar y eliminar libros 5. Ingresar, consultar, actualizar y eliminar los clientes (estudiantes) 6. Ingresar, consultar, actualizar y eliminar prestamos de libros