Download Bases de Datos
Document related concepts
Transcript
Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación Ingeniería en Computación – Administradores de Bases de Datos Conexión de Bases de Datos: Bases de Datos llevadas a Visual Basic .Net 2005. Guía de trabajo #4 Prof. Giovanni Francisco Sáenz Araica. Objetivo: 1.- Crear conexión entre una Base de Datos diseñada en SQL Server 2005 y llevarla a Visual Basic, para presentar esos datos al usuario en una aplicación de Windows. 2.- Mostrar los pasos que se deben de seguir para poder establecer conexión entre la base de datos que se diseño en SQL Server 2005 y Visual Basic .Net 2005. 3.- Clase practica de Administración de Bancos de Datos y Salida de Datos en un Lenguaje de Programación que actúa como Gestor de Bases de Datos. Tabla de Contenidos: Trabajando Con Bases de Datos en Visual Basic .Net _________________________________________ 3 Detallando la estructura del Dataset y su funcionamiento ______________________________________ 4 Trabajando Con Visual Basic .Net 2005 ________________________________________________ 5 (Ejemplo #1)_______________________________________________________________________ 5 Trabajando Con Visual Basic .Net 2005 _______________________________________________ 14 (Ejemplo #2)______________________________________________________________________ 14 Procedimiento Almacenado _________________________________________________________ 15 Para Ejecutarse en SQL Server 2005 ______________________________________________________ 15 Manejo de Procedimientos Almacenados en Visual Basic .Net _____________________________ 17 Tareas___________________________________________________________________________ 18 Bibliografía ______________________________________________________________________ 19 Trabajando Con Bases de Datos en Visual Basic .Net (Utilizando el Método de Código) Para poder trabajar con conexiones en visual Basic .Net, tenemos que considerar el esquema de manejo de datos. Una Base de datos lógica contenida en dos archivos físicos en disco. Modelo de acceso a base de datos utilizando ADO.Net Estructura Simplificada del Dataset Detallando la estructura del Dataset y su funcionamiento Base de Datos Adapter Dataset Conexión Comando Aplicación Cliente El dataset controlara las tablas de la siguiente forma: Dataset Tabla: Empleados Tabla: Customers Este ejemplo fue diseñado en la base de nortwind de SQL Server. Primero antes que todo, crear dos Formularios, como aparece en la siguiente gráfica: Observar con detalle el explorador de soluciones de Visual Basic .Net 2005. En este caso tenemos dos Formularios: a.- Form1. b.- FrmEmpleados. Ambos tendrán que programar Instrucciones. Trabajando Con Visual Basic .Net 2005 (Ejemplo #1) 1.- Crear el Siguiente Formulario Button2 Button1 2.- Crear dos Botones, y dentro del botón Cargar Empleados, digitalizara el siguiente código: Private Sub Button2_Click(ByVal sender As System.EventArgs) Handles Button2.Click Dim ObjFrmEmpleados As FrmEmpleados ObjFrmEmpleados = New FrmEmpleados ObjFrmEmpleados.ShowDialog() End Sub System.Object, ByVal e As 3.- Dentro del Botón salir, digitalizar: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub De tal forma que usted vera en la pantalla lo siguiente: Código del Form1 Debe crear una Conexión con el Servidor, ya que en nuestro caso utilizaremos SQL Server, de la siguiente Forma (debe buscar el Explorar de Servidores): Ir al Menu de Opciones y seleccionar el Explorador de Servidores (recuerde que para poder hacer esto sin ningún problema, le recomendamos estar como Administrador). Recuerde Incluir, la ventana de Propiedades (en caso de que no este disponible en pantalla) Luego Selección conexión de Datos de la Siguiente forma: Al estar en el Explorador de Servidores, dar click derecho sobre la conexión de datos (esta es una de las varias formas y la más sencilla en que usted puede crear una conexión con una base de datos). Lógicamente, usted indicara que desea crear una conexión, este caso por defecto al estar en el 2005 se le presenta SQL Server 2005, así como también puede optar por una nueva conexión, de las dos maneras llegara al mismo lugar. Entonces usted vera la siguiente ventana (en nuestro caso el servidor se llama Local). Debe seleccionar el tipo de base de dato según su origen. Este formulario aparece al hacer click en Agrega Conexión. Si usted selecciono SQL Server debe Aparecer Recuerde que es primordial y de gran relevancia el nombre del servidor, sino, no se realizaran las tareas que necesita (LOCAL en este ejemplo, pero eso depende de su Ordenador). Puede utilizar autenticación de Windows, no tendrá ningún problema en este ejercicio. Es muy importante seleccionar la base de datos que usted utilizara, recuerde que en nuestro caso es Northwind. 4.- Usted puede Notar que en la parte derecha tiene otro formulario, el cual detalla lo siguiente: GridEmpleados GridCustumers Se agregaran dos elementos, pero antes de esos realice lo siguiente: 4.1.- Al nombre del formulario, llámelo ahora como FrmEmpleados. 4.2.- Agregar un DataGridView con el Nombre de gridEmpleados. 4.3.- Agregar un segundo DataGridView con el nombre de GridCustumers. 5.- Dentro del Formulario, agregue el siguiente Código: Public Class FrmEmpleados 'Declaracion de los Objetos de conexion a la Base de datos. Dim objCnn As SqlClient.SqlConnection 'Conexion a la Base de Datos Dim objAdapter As SqlClient.SqlDataAdapter 'Instruccion SQL que se quiere ‘ejecutar Dim objDataSet As DataSet 'El resultado de la Instruccion SQL Private Sub FrmEmpleados_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Declaracion de Variables Dim strSql As String Dim strCnn As String 'Creando las Instancias de los Objetos objCnn = New SqlClient.SqlConnection objDataSet = New DataSet 'Se asigna la cadena de Conexion, en este caso es para SQL Server con Autenticacion Windows strCnn = "Data Source=LOCAL;Initial Catalog=Northwin;Integrated Security=True" ---- Comentario de la instrucción anterior. ‘Recuerde que Source depende del Servidor, es decir que verifique el ‘nombre del Servidor y los detalles Verifique las Propiedades de la Conexión de Datos, es decir, observe como se llama el servidor y todos los detalles que hacen posible que usted pueda cargar esa base de datos. Dentro de las Propiedades de la Base de Datos, observe la cadena de conexión, el proveeedor y tipo, ya sabe que para nuestro caso es SQL Server. Varía de acuerdo al Servidor --Puede seguir digitalizando el código 'Instruccion SQL, del Procedimiento Almacenado, puede ser un Select, una vista, funcion, tigger, etc. strSql = "EXEC spGetEmpleados" 'La cadena de Conwxion al Objeto conexion objCnn.ConnectionString = strCnn 'Se establece la conexion con el servidor objCnn.Open() 'Ejecutando la Instrcion Sql especificado en la variable strSql objAdapter = New SqlClient.SqlDataAdapter(strSql, objCnn) 'Asignando el Resultado de la Ejecucion al DataSet objAdapter.Fill(objDataSet, "Empleados") 'La cadena recibe el Procedimiento Almacenado strSql = "EXEC spGetCustomers" objAdapter = New SqlClient.SqlDataAdapter(strSql, objCnn) objAdapter.Fill(objDataSet, "Customers") 'Se asignan los datos al Grid Me.gridEmpleados.DataSource = objDataSet.Tables("Empleados") Me.GridCustumers.DataSource = objDataSet.Tables("Customers") End Sub End Class Recuerde que nosotros estamos conectados a la base de datos Northwin, ahora fíjese en los procedimientos almacenados, hemos llamado al procedimiento spGetEmpleados y spGetCustomers. El contenido de los procedimientos almacenados es: spGetCustomers El contenido de los procedimientos almacenados es: spGetEmpleados Ambos fueron diseñados en SQL Server 2005, bueno, pero usted los puede diseñar en la Versión 2000. 6.- Ahora que tiene todo claro, proceda a ejecutar el programa para ver los resultados, los cuales son: El resultado al digitalizar sobre el Botón Cargar Empleados es: Si al final le resulto el formulario FrmEmpleados, con las dos tablas, entonces bien venido a visual Basic .Net 2005 con bases de datos, sino, entonces verifique el código, probablemente exista algún problema con los procedimientos almacenados o con la conexión al momento de abrir la base de datos. Trabajando Con Visual Basic .Net 2005 (Ejemplo #2) Ahora recordemos un poco de los Procedimientos Almacenados que se han desarrollado en SQL Server 2005. Vamos al estilo Flash Back, un procedimiento almacenado, debe tener: a.- Un nombre. b.- Parámetros, esto es opcional. c.- Declaraciones de Datos, esto también es opcional. d.- El bloque donde programaremos las instrucciones, delimitado por un Begin – End. Si lo recordáis, entonces a vosotros, se nos presenta el siguiente ejemplo: Procedimiento Almacenado set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER PROCEDURE [dbo].[spgetLibros] AS BEGIN SET NOCOUNT ON; SELECT dbo.Libro.Nombre_Libros, dbo.Editorial.Nombre_Editorial FROM dbo.Libro INNER JOIN dbo.Editorial ON dbo.Libro.Id_Editorial = dbo.Editorial.Id_Editorial END Para Ejecutarse en SQL Server 2005 En la Primera forma y la más Sencilla: exec spgetLibros En la forma como segunda opción: Exec [dbo].[spgetLibros] Y en la tercera forma, la cual puede generar otras versiones parecidad para la corrida: Execute spgetLibros Manejo de Procedimientos Almacenados en Visual Basic .Net Imports System.Data Public Class frmPrincipal Private Sub frmPrincipal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try CargarDatos() Catch ex As Exception MsgBox("Ocurrio un error en frmPrincipal " & ex.Message, MsgBoxStyle.Critical, "Prueba") End Try End Sub Private Sub CargarDatos() '-- Declaracion de Variables Dim StrConexion As String Dim ObjConexion As SqlClient.SqlConnection Dim ObjAdaptador As SqlClient.SqlDataAdapter Dim ObjDataSet As DataSet Try ObjConexion = New SqlClient.SqlConnection ObjDataSet = New DataSet 'Establecer la conexion a la BD '------------------------------------------------------------------------------------'Data Source = Nombre del Servidor 'Initial Catalog = Nombre de la BD 'User ID = Usuario del SERVIDOR SQL si es Autenticacion Windows 'puede ir con Cadena vacia 'Password = Clave del Usuario del SERVIDOR SQL si es autenticacion ‘Windows debe contener cadena vacia. '------------------------------------------------------------------------------------StrConexion = "Data Source=LOCAL;Initial Catalog=LibreríaNUEVODIA;User ID='sa'; Password = ''" ObjConexion.ConnectionString = StrConexion ObjConexion.Open() ObjAdaptador = New SqlClient.SqlDataAdapter("exec spgetLibros", ObjConexion) ObjAdaptador.Fill(ObjDataSet, "Editoriales") Me.dataEditoriales.DataSource = ObjDataSet.Tables("Editoriales") Catch ex As Exception MsgBox("Ocurrio un error en CargarDatos " & ex.Message, MsgBoxStyle.Critical, "Prueba") End Try End Sub End Class Recuerda seguir los pasos como se hizo en el primer ejercicio, es recomendable que leas información adicional a la que se te muestra. Recuerda, uno nunca termina de aprender y si en verdad buscar ampliar tus conocimientos, te darías cuenta que de lo que tu necesitas sabes muy poco y el que te diga que todo lo sabe, en verdad no sabe nada. Lee a Piagget o un libro de nuevas tendencias del conocimiento, y te darás cuenta que es así la vida. Tareas 1.- Hacer esta práctica con los procedimientos almacenados que están propuestos de acuerdo al inventario que se definió en las semanas anteriores. 2.- Investigar como hacer estos mismos pasos, pero ahora con vista y funciones. 3.- Aquí se mostraron los pasos a seguir para desarrollar esta aplicación en Windows, ahora, tu tienes que hacerlo con Web Forma. Esta misma práctica pero llevada a una base de datos dinámica y que se “pueda ver en todo el mundo”. De hecho, esta es la siguiente prueba evaluada. Bibliografía 1.- Titulo: Aprenda Ya Visual Basic .Net. Autor: Michael Halvorson. Editorial: Mc Graw Hill. ISBN: 970-10-5897-6 2.- Titulo: Aprenda Ya SQL Server 2005. Autor: Michael Halvorson. Editorial: Mc Graw Hill. 3.- Titulo: Aprendiendo Visual Basic .Net. Autor: Duncan Mackenzie, Kent Sharkey. Editorial: Prentice Hall. ISBN: 970-26-0379-X. 4.- Titulo: Fundamentos de SQL – Conocimientos Esenciales para Programadores. Autor: Forrest Houlette. Editorial: Mc Graw Hill. ISBN: 970-10-3895-9. 5.- Titulo: Curso de SQL Server y Visual Basic .Net. Autor: Ing. Glenda Barrios. Editorial:. Ing. Glenda Barrios ISBN: UNI – FEC, Ingeniería en Computación. No puedo definir que un libro tiene más que el otro, la verdad es que de cada libro, existe un parte, lo cual hizo posible poder completar este documento. Ya que gracias a la Profesora Glenda se pudo completar la Información, así como Erick, ambos me dieron las ideas de cómo plantear los problemas que les presente.