Guia Practica Base de Datos Asp_net

download Guia Practica Base de Datos Asp_net

of 16

Transcript of Guia Practica Base de Datos Asp_net

  • 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).aspx
  • 7/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.aspx
  • 7/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.)