Download Bases de Datos

Document related concepts

Microsoft SQL Server wikipedia , lookup

SQL Server Compact wikipedia , lookup

ADO.NET wikipedia , lookup

Transact-SQL wikipedia , lookup

Adaptive Server Anywhere wikipedia , lookup

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.