Post on 11-Feb-2018
7/22/2019 Guia Practica Base de Datos Asp_net
1/16
El auto convencimiento nos da el poder de cambiar nuestro destino
GUIA PRACTICA #1 SEMANA 4
MODULO: DESARROLLO DE APLICACIONES WEB
FACILITADORES: LIC. OSCAR ROVIRA, TEC. KEIRI BERMDEZ, ING. ERWIN VIDES.
TEMA: CONECCIONES A BASE DE DATOS DE SQL SERVER CON ASP.NET Y C#.NET
Bases de datos
Cualquier aplicacin de inters requiere el almacenamiento y posterior recuperacin de los datoscon los que trabaje (pedidos en aplicaciones de comercio electrnico, datos de personal para lasaplicaciones de recursos humanos, datos de clientes en sistemas CRM, etc.). Los sistemas degestin de bases de datos (DBMSs) nos permiten almacenar, visualizar y modificar datos, as comohacer copias de seguridad y mantener la integridad de los datos, proporcionando una serie defunciones que facilitan el desarrollo de nuevas aplicaciones.
Desde un punto de vista intuitivo, una base de datos no es ms que un fondo comn deinformacin almacenada en una computadora para que cualquier persona o programa autorizadopueda acceder a ella, independientemente de su lugar de procedencia y del uso que haga de ella.Algo ms formalmente, una base de datos es un conjunto de datos comunes a un "proyecto" quese almacenan sin redundancia para ser tiles en diferentes aplicaciones.
Ejemplo prctico 1:
1- Crearemos la siguiente base de datos la cual llamaremos: rentacar utilizando el siguientecdigo:
USE[rentacar]GO/****** Object: Table [dbo].[marcas] Script Date: 03/11/2012 18:30:53******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[marcas](
[idmarca][int]IDENTITY(1,1)NOTNULL,[marca][varchar](50)NOTNULL,
CONSTRAINT[PK_marcas]PRIMARYKEYCLUSTERED
([idmarca]ASC
)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[marcas]ONINSERT[dbo].[marcas]([idmarca],[marca])VALUES (1,N'Toyota')
7/22/2019 Guia Practica Base de Datos Asp_net
2/16
El auto convencimiento nos da el poder de cambiar nuestro destino
INSERT[dbo].[marcas]([idmarca],[marca])VALUES (2,N'Mazda')INSERT[dbo].[marcas]([idmarca],[marca])VALUES (3,N'Nissan')INSERT[dbo].[marcas]([idmarca],[marca])VALUES (4,N'GMC')INSERT[dbo].[marcas]([idmarca],[marca])VALUES (5,N'BMW')INSERT[dbo].[marcas]([idmarca],[marca])VALUES (6,N'Mercedes Benz')SETIDENTITY_INSERT[dbo].[marcas]OFF/****** Object: Table [dbo].[departamentos] Script Date: 03/11/2012
18:30:53 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[departamentos](
[iddepartamento][int]IDENTITY(1,1)NOTNULL,[departamento][varchar](50)NULL,
CONSTRAINT[PK_departamentos]PRIMARYKEYCLUSTERED(
[iddepartamento]ASC
)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[departamentos]ONINSERT[dbo].[departamentos]([iddepartamento],[departamento])VALUES(1,N'San Miguel')INSERT[dbo].[departamentos]([iddepartamento],[departamento])VALUES(2,N'La Unin')INSERT[dbo].[departamentos]([iddepartamento],[departamento])VALUES(3,N'San Salvador')SETIDENTITY_INSERT[dbo].[departamentos]OFF
/****** Object: Table [dbo].[colores] Script Date: 03/11/201218:30:53 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[colores](
[idcolor][int]IDENTITY(1,1)NOTNULL,[color][varchar](50)NOTNULL,
CONSTRAINT[PK_colores]PRIMARYKEYCLUSTERED(
[idcolor]ASC)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[colores]ONINSERT[dbo].[colores]([idcolor],[color])VALUES (1,N'Rojo')INSERT[dbo].[colores]([idcolor],[color])VALUES (2,N'Negro')
7/22/2019 Guia Practica Base de Datos Asp_net
3/16
El auto convencimiento nos da el poder de cambiar nuestro destino
INSERT[dbo].[colores]([idcolor],[color])VALUES (3,N'Azl')INSERT[dbo].[colores]([idcolor],[color])VALUES (4,N'Verde')INSERT[dbo].[colores]([idcolor],[color])VALUES (5,N'Amarillo')INSERT[dbo].[colores]([idcolor],[color])VALUES (6,N'Dorado')SETIDENTITY_INSERT[dbo].[colores]OFF/****** Object: Table [dbo].[municipios] Script Date: 03/11/201218:30:53 ******/
SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[municipios](
[idmunicipio][int]IDENTITY(1,1)NOTNULL,[iddepartamento][int]NULL,[municipio][varchar](50)NULL,
CONSTRAINT[PK_municipios]PRIMARYKEYCLUSTERED(
[idmunicipio]ASC
)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[municipios]ONINSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (1, 1,N'Quelepa')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (2, 2,N'Conchagua')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (3, 1,N'Moncagua')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])
VALUES (4, 1,N'Nueva Guadalupe')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (5, 3,N'Nejapa')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (6, 3,N'Soyapango')INSERT[dbo].[municipios]([idmunicipio],[iddepartamento],[municipio])VALUES (7, 3,N'Ciudad Delgado')SETIDENTITY_INSERT[dbo].[municipios]OFF/****** Object: Table [dbo].[sucursales] Script Date: 03/11/201218:30:53 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERON
GOSETANSI_PADDINGONGOCREATETABLE[dbo].[sucursales](
[idsucursal][int]IDENTITY(1,1)NOTNULL,[sucursal][varchar](100)NULL,[idmunicipio][int]NULL,
CONSTRAINT[PK_sucursales]PRIMARYKEYCLUSTERED(
[idsucursal]ASC
7/22/2019 Guia Practica Base de Datos Asp_net
4/16
El auto convencimiento nos da el poder de cambiar nuestro destino
)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[sucursales]ON
INSERT[dbo].[sucursales]([idsucursal],[sucursal],[idmunicipio])VALUES (1,N'La Carrera', 1)INSERT[dbo].[sucursales]([idsucursal],[sucursal],[idmunicipio])VALUES (2,N'New Car', 2)INSERT[dbo].[sucursales]([idsucursal],[sucursal],[idmunicipio])VALUES (3,N'Need for Speed', 3)SETIDENTITY_INSERT[dbo].[sucursales]OFF/****** Object: Table [dbo].[vehiculos] Script Date: 03/11/201218:30:53 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO
SETANSI_PADDINGONGOCREATETABLE[dbo].[vehiculos](
[idvehiculo][int]IDENTITY(1,1)NOTNULL,[placa][int]NOTNULL,[idmarca][int]NOTNULL,[idcolor][int]NOTNULL,[idsucursal][int]NOTNULL,[cantidad][int]NOTNULL,[imagen][varbinary](50)NULL,
CONSTRAINT[PK_vehiculos]PRIMARYKEYCLUSTERED(
[idvehiculo]ASC)WITH (PAD_INDEX =OFF,STATISTICS_NORECOMPUTE =OFF,IGNORE_DUP_KEY=
OFF,ALLOW_ROW_LOCKS =ON,ALLOW_PAGE_LOCKS =ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGOSETIDENTITY_INSERT[dbo].[vehiculos]ONINSERT[dbo].[vehiculos]([idvehiculo],[placa],[idmarca],[idcolor],[idsucursal],[cantidad],[imagen])VALUES (1, 953684, 1, 6, 2, 2,NULL)INSERT[dbo].[vehiculos]([idvehiculo],[placa],[idmarca],[idcolor],[idsucursal],[cantidad],[imagen])VALUES (3, 852147, 3, 5, 3, 95,NULL)SETIDENTITY_INSERT[dbo].[vehiculos]OFF/****** Object: ForeignKey [FK_municipios_departamentos] Script Date:03/11/2012 18:30:53 ******/
ALTERTABLE[dbo].[municipios] WITHCHECKADD CONSTRAINT[FK_municipios_departamentos]FOREIGNKEY([iddepartamento])REFERENCES[dbo].[departamentos]([iddepartamento])GOALTERTABLE[dbo].[municipios]CHECKCONSTRAINT[FK_municipios_departamentos]GO/****** Object: ForeignKey [FK_sucursales_municipios] Script Date:03/11/2012 18:30:53 ******/
7/22/2019 Guia Practica Base de Datos Asp_net
5/16
El auto convencimiento nos da el poder de cambiar nuestro destino
ALTERTABLE[dbo].[sucursales] WITHCHECKADD CONSTRAINT[FK_sucursales_municipios]FOREIGNKEY([idmunicipio])REFERENCES[dbo].[municipios]([idmunicipio])GOALTERTABLE[dbo].[sucursales]CHECKCONSTRAINT[FK_sucursales_municipios]GO
/****** Object: ForeignKey [FK_vehiculos_colores] Script Date:03/11/2012 18:30:53 ******/ALTERTABLE[dbo].[vehiculos] WITHCHECKADD CONSTRAINT[FK_vehiculos_colores]FOREIGNKEY([idcolor])REFERENCES[dbo].[colores]([idcolor])GOALTERTABLE[dbo].[vehiculos]CHECKCONSTRAINT[FK_vehiculos_colores]GO/****** Object: ForeignKey [FK_vehiculos_marcas] Script Date:03/11/2012 18:30:53 ******/ALTERTABLE[dbo].[vehiculos] WITHCHECKADD CONSTRAINT[FK_vehiculos_marcas]FOREIGNKEY([idmarca])REFERENCES[dbo].[marcas]([idmarca])
GOALTERTABLE[dbo].[vehiculos]CHECKCONSTRAINT[FK_vehiculos_marcas]GO/****** Object: ForeignKey [FK_vehiculos_sucursales] Script Date:03/11/2012 18:30:53 ******/ALTERTABLE[dbo].[vehiculos] WITHCHECKADD CONSTRAINT[FK_vehiculos_sucursales]FOREIGNKEY([idsucursal])REFERENCES[dbo].[sucursales]([idsucursal])GOALTERTABLE[dbo].[vehiculos]CHECKCONSTRAINT[FK_vehiculos_sucursales]
GO
El diagrama resultante de la base de datos sera el siguiente:
7/22/2019 Guia Practica Base de Datos Asp_net
6/16
El auto convencimiento nos da el poder de cambiar nuestro destino
2- Creamos una nueva aplicacin web vaca en Visual Web Developer 2010 a la cual
llamaremos RentaCar y agregaremos las siguientes carpetas desde el proyecto: Clases,
Css, Formularios y Js, el resultado de esta se vera de la siguiente manera:
3- Procederemos a crear la conexin a la base de datos, esto lo haremos creando 2 archivos
de clase dentro de la Clases al que llamaremos coneccion.cs y ClassVehiculo.cs el
resultado se vera de la siguiente manera:
4- Entro del archivo coneccion.cs importaremos las libreras
using System.Data;
using System.Data.SqlClient;
Nota: El espacio de nombres System.Data proporciona acceso a las clases que representan la
arquitectura de ADO.NET. ADO.NET le permite generar componentes que administran
eficazmente los datos de varios orgenes de datos. Para mayor informacin pueden encontrarla
en el sitio oficial de Microsofthttp://msdn.microsoft.com/es-es/library/system.data(v=vs.80).aspx
5- Crearemos un mtodo de conexin de tipo SqlConnection el cual almacenara la cadena de
conexin de nuestro equipo:
http://msdn.microsoft.com/es-es/library/system.data(v=vs.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data(v=vs.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data(v=vs.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data(v=vs.80).aspx7/22/2019 Guia Practica Base de Datos Asp_net
7/16
El auto convencimiento nos da el poder de cambiar nuestro destino
Se debe de cambiar la cadena de conexin por la cadena del equipo en el que se este trabajando
esto se puede realizar de la siguiente manera:
a) En la ventana de Explorador de Servidores daremos click derecho en el tem Conexiones
de datos y seleccionaremos Agregar conexin, este proceso nos mostrara una etapa en
la cual nos pedir que coloquemos el nombre del servidor o que lo busquemos en una listade un combo box, si no se encuentra seguro de cual es el nombre del servidor este se le
indica en la pantalla de inicio de SQLServer.
Al colocar el nombre del servidor nos mostrara todas las bases de datos relacionados con
este servidor en el combobox que se encuentra debajo del radiobutton con la leyenda
Seleccione o escriba el nombre de la base de datos el resultado final ser el siguiente
7/22/2019 Guia Practica Base de Datos Asp_net
8/16
El auto convencimiento nos da el poder de cambiar nuestro destino
Damos click en Aceptar.
b) En la lista de conexiones aparecer la nueva conexin damos doble click sobre ella para
iniciar la conexin.
c) Teniendo seleccionado nuestra conexin, podremos ver en la ventana de propiedades que
nos muestra una propiedad llamada Cadena de Conexin y nos dar la cadena de
conexin que ser la que utilizaremos en nuestro proyecto.
7/22/2019 Guia Practica Base de Datos Asp_net
9/16
El auto convencimiento nos da el poder de cambiar nuestro destino
6- Teniendo ya nuestro mtodo de conexin procederemos a utilizarlo, en el archivo de clasellamado ClassVehiculo.cs procederemos a crear la instancia de la clase y el mtodoMostrarVehiculos().
Conceptos bsicos a manejar:
SqlCommand (Clase) (System.Data.SqlClient)
Representa un procedimiento almacenado o una instruccin de Transact-SQL que se ejecuta en
una base de datos de SQL Server. Esta clase no puede heredarse.
SqlDataAdapter (Clase) (System.Data.SqlClient)
Representa un conjunto de comandos de datos y una conexin de base de datos que se utilizanpara rellenar un DataSet y actualizar una base de datos de SQL Server.
DataTable (Clase) (System.Data)
Representa una tabla de datos en memoria.
Recuerde que en todo archivo que necesite o que tendr la
funcionabilidad de manejar datos debe de importarse las libreras.
using System.Data;
using System.Data.SqlClient;
http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldataadapter(v=VS.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldataadapter(v=VS.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldataadapter(v=VS.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data.datatable%28v=VS.80%29.aspxhttp://msdn.microsoft.com/es-es/library/system.data.datatable%28v=VS.80%29.aspxhttp://msdn.microsoft.com/es-es/library/system.data.datatable%28v=VS.80%29.aspxhttp://msdn.microsoft.com/es-es/library/system.data.datatable%28v=VS.80%29.aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldataadapter(v=VS.80).aspxhttp://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.aspx7/22/2019 Guia Practica Base de Datos Asp_net
10/16
El auto convencimiento nos da el poder de cambiar nuestro destino
Para ms informacin puede referirse a la pgina oficial de Microsoft
http://msdn.microsoft.com/es-es/
El cdigo resultante sera el siguiente
http://msdn.microsoft.com/es-es/http://msdn.microsoft.com/es-es/http://msdn.microsoft.com/es-es/7/22/2019 Guia Practica Base de Datos Asp_net
11/16
El auto convencimiento nos da el poder de cambiar nuestro destino
7- Procederemos a utilizar el mtodo MostrarVehiculos(), crearemos un nuevo formulario de
tipo aspx al el cual se llamara frm_vehiculos.aspx el cual se colocara dentro de la carpeta
formularios el resultado tendra que ser este:
8- Teniendo en pantalla el formulario frm_vehiculos.aspx seleccionaremos de la ventanade herramientas y dentro de la pestaa Datos seleccionaremos el control GridView , lo
arrastraremos y soltaremos dentro del formulario, cambiaremos su ID por
gvwVehiculos, daremos doble click sobre el formulario para tener acceso al archivo
frm_vehiculos.aspx.cs y crearemos la instancia de la clase y configurar el GridView.
7/22/2019 Guia Practica Base de Datos Asp_net
12/16
El auto convencimiento nos da el poder de cambiar nuestro destino
Si todo se ha realizado correctamente al presionar F5 obtendremos el siguiente resultado:
TAREA PRACTICA 1:
Aplicando sus conocimientos de SQL modifique la consulta para que no muestre los IDs de
las tablas idmarca, idcolor, idsucursal para que muestre lo que tengan almacendado en los
campos: marca, color, sucursal y que muestre el municipio y departamento al que
pertenece este vehiculo.
Cree y configure los archivos necesarios para poder listar las tablas; Marcas, Colores y
Sucursales, Departamentos y Municipios.
TEMA 2: FILTRADOS
En esta etapa aprenderemos a hacer filtrados ocuparemos las tablas; Departamentos y
Municipios.
1- Crearemos dentro de la carpeta clases un archivo de tipo clase al que llamaremos Class
Departamento.cs y crearemos un mtodo que nos listara los departamentos.
7/22/2019 Guia Practica Base de Datos Asp_net
13/16
El auto convencimiento nos da el poder de cambiar nuestro destino
2- Crearemos un formulario de tipo .aspx al cual llamaremos
frm_detalle_departamento_municipio.aspx dentro de la carpeta formularios, teniendo
el formulario en pantalla, dentro del cuadro de herramientas y la pestaa seleccionaremos
un control de tipo DropDownList y lo colocaremos dentro del formulario.
7/22/2019 Guia Practica Base de Datos Asp_net
14/16
El auto convencimiento nos da el poder de cambiar nuestro destino
3- Crearemos dentro de la carpeta clases un archivo de tipo clase al que llamaremos
ClassMunicipio.cs y crearemos 2 metodos, un mtodo que nos listara los municipios
segn el iddepartamento y un segundo mtodo que nos listara todos los municipios sin
filtrar. RECUERDE: Crear la instancia para la conexin de base de datos.
7/22/2019 Guia Practica Base de Datos Asp_net
15/16
El auto convencimiento nos da el poder de cambiar nuestro destino
4- Ahora agregaremos un control GridView al que llamaremos gvwMunicipios en el
formulario frm_detalle_departamento_municipio.aspx el formulario tendr el siguiente
aspecto:
5- Ahora modificaremos el cdigo del paso 2 quedando de la siguiente manera
7/22/2019 Guia Practica Base de Datos Asp_net
16/16
El auto convencimiento nos da el poder de cambiar nuestro destino
por ultimo al control ddlDepartamento asignamos la propiedad AutoPostBack = True.
TAREA PRACTICA 2:
Aplicando los conocomientos adquiridos en esta practica cree los archivos necesarios para
poder tener un GridView que cargue los datos de Vehiculos filtrados por Marca, Color y
Sucursal (Se recomienda llenar la tabla vehiculos por lo menos con 25 datos para poder
tener rangos de filtrados.)
Cree y configure los archivos necesarios para poder listar la tabla Sucursales usando el
operador LIKE de SQL (Se recomienda llenar la tabla Sucursales por lo menos con 25 datos
para poder tener rangos de filtrados.)