conexión de bases de datos: bases de datos llevadas …docentes.uni.edu.ni/fec/giovanni.saenz/base...

19
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.

Upload: lynhi

Post on 20-Sep-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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.

Page 2: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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

Page 3: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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

Page 4: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

Estructura Simplificada del Dataset

Detallando la estructura del Dataset y su funcionamiento

El dataset controlara las tablas de la siguiente forma:

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:

Conexión

Base de

Datos

Adapter

Comando

Dataset

Aplicación

Cliente

Dataset

Tabla: Empleados Tabla: Customers

Page 5: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

Trabajando Con Visual Basic .Net 2005

(Ejemplo #1) 1.- Crear el Siguiente Formulario

2.- Crear dos Botones, y dentro del botón Cargar Empleados, digitalizara el siguiente

código:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim ObjFrmEmpleados As FrmEmpleados ObjFrmEmpleados = New FrmEmpleados ObjFrmEmpleados.ShowDialog() End Sub

Button2 Button1

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.

Page 6: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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:

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):

Código del

Form1

Page 7: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

Luego Selección conexión de Datos de la Siguiente forma:

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).

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)

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).

Page 8: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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.

Page 9: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

4.- Usted puede Notar que en la parte derecha tiene otro formulario, el cual detalla lo

siguiente:

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

GridEmpleados GridCustumers

Page 10: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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

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.

--Puede seguir digitalizando el código 'Instruccion SQL, del Procedimiento Almacenado, puede ser un Select, una vista, funcion, tigger, etc.

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.

Varía de acuerdo al Servidor

Page 11: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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.

Page 12: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

El contenido de los procedimientos almacenados es: spGetCustomers

El contenido de los procedimientos almacenados es: spGetEmpleados

Page 13: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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:

Page 14: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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:

Page 15: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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

Page 16: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual
Page 17: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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")

Page 18: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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.

Page 19: Conexión de Bases de Datos: Bases de Datos llevadas …docentes.uni.edu.ni/fec/Giovanni.Saenz/Base de Datos/Trabajando... · de datos que se diseño en SQL Server 2005 y Visual

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.