martes, 30 de agosto de 2016

lunes, 29 de agosto de 2016

Diplomado Diseñador Web: jQuery UI Efectos (Módulo 4)

Laboratorio 4

https://drive.google.com/open?id=0B7Ct7K_LTJvSMUZJSTRXYXhFbGM

Archivos de Trabajo

https://drive.google.com/open?id=0B7Ct7K_LTJvSYUhrSTRvaWxrcmM





Laboratorio 5


Archivos de Trabajo

https://drive.google.com/open?id=0B7Ct7K_LTJvSLVJhd0djVlhYUk0

Programación en ASP.NET: Módulo 02: ADO.NET: Reportes y Servicios Web


Laboratorio 6

Definir un reporte para los Clientes, con interface de usuario en una página ASPX.

https://drive.google.com/open?id=0B7Ct7K_LTJvSaE9mMnlyV0xaOUU



Laboratorio 7

Instalar el Internet Information Server (IIS) y publicar un Servicio Web.  El siguiente archivo tiene el proyecto a publicar.  No se debe publicar CrediSeguroWeb.

https://drive.google.com/open?id=0B7Ct7K_LTJvSZ0ZEM29xbkxTYjA


Archivo con la Solución del Servicio Web, este proyecto se debe publicar en el Default Web Site (Sitio Web por Omisión).

https://drive.google.com/open?id=0B7Ct7K_LTJvSeEhVamRZUHN2aFk


Script Crear Usuario en Servidor y Base de Datos

https://drive.google.com/open?id=0B7Ct7K_LTJvSVl85RlBWN2xXNU0



Laboratorio 8

Crear una aplicación Cliente para el Servicio Web.

https://drive.google.com/open?id=0B7Ct7K_LTJvSc2RRQlhVTC1YRVU




Error de Configuración en el Reporte




Agregar en el web.config lo siguiente, entre la etiqueta final de </system.web> y la etiqueta siguiente:

  </system.web>

  <!-- Reportes WebServer Configuration -->
  <system.webServer>
    <handlers>
      <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </handlers>
  </system.webServer>
 

  <system.codedom>


miércoles, 24 de agosto de 2016

Programación en ASP.NET: Módulo 02: ADO.NET

Presentación

https://drive.google.com/open?id=0B7Ct7K_LTJvSSFpQT21BT0tnelk




Laboratorios

Laboratorio 2

https://drive.google.com/open?id=0B7Ct7K_LTJvSNkFGeTg0SVFjT1U

  • La página de Tarjeta, debe permitir consultar las tarjetas del cliente, utilizando la información de el Nombre y Apellido del Cliente (esta información la debe ingresar el usuario final), debe mostrar toda la información del cliente, se puede utilizar una vista (View) de SQL Server para mostrar los resultados.
  • La página de Movimientos, debe mostrar los Movimientos de una Tarjeta, utilizando la información del CodTarjeta que debe ingresar el usuario final.  Los Movimientos deben aparecer en orden cronológico descendente.



Laboratorio 3

https://drive.google.com/open?id=0B7Ct7K_LTJvSWl9admJ0Z2sxbjQ


Solución para Laboratorio 2 y 3
https://drive.google.com/open?id=0B7Ct7K_LTJvSQ0JLVHpIc25wNzA



Laboratorio 4

https://drive.google.com/open?id=0B7Ct7K_LTJvSdDE5WXdTVVhob00

Solución para Laboratorios 2 al 4
https://drive.google.com/open?id=0B7Ct7K_LTJvSeE83b0l3TndWSE0

Script

https://drive.google.com/open?id=0B7Ct7K_LTJvSZG1oTmRIY1RWS0k

  • Si no se ejecuta el script anterior, Ejecutar los siguientes pasos:
  • En la clase TarjetaDB.cs se debe cambiar el nombre del Procedimiento Almacenado (Stored Proc) en la siguiente línea Cmd.CommandText = "paTarjetaSaldoCliente";  por el valor correcto de: Cmd.CommandText = "paClienteSaldo";
  • Además, se debe cambiar el nombre del Parámetro al nombre correspondiente en el Procedimiento Almacenado.




Laboratorio 5


https://drive.google.com/open?id=0B7Ct7K_LTJvSalpfZGZZVEowcUE


Script

https://drive.google.com/open?id=0B7Ct7K_LTJvSeEllMkxTQWtyQ1k



martes, 23 de agosto de 2016

Programación en ASP.NET: Módulo 01: Introducción

Presentación


https://drive.google.com/open?id=0B7Ct7K_LTJvSeDNuYzlGVGE3NDg


Leer presentación y realizar el tutorial del Video como laboratorio.

Tutorial en Video


Parte 1




Parte 2

https://www.youtube.com/watch?v=JGJtU2bF6Q4


Parte 3

Cambiar el nombre del Servidor por:   (localdb)\MSSQLLocalDB 
para que funcione en la versión de MS Visual Studio 2015.


https://www.youtube.com/watch?v=AdEa10EXepI


Probar con esta configuración la primera vez, luego agregar el resto de los atributos:

        <asp:SqlDataSource ID="dsUsuarios" runat="server"
            DataSourceMode="DataReader"
            ProviderName="System.Data.SqlClient"
            ConnectionString="Data Source=(localdb)\MSSQLLocalDB;
                                   AttachDbFilename=|DataDirectory|\Listado.mdf;Integrated Security=True"
            SelectCommand="SELECT ID, Nombre, Apellido FROM Usuarios">
 </asp:SqlDataSource>

        <asp:GridView ID="gvUsuarios" runat="server"
            DataSourceID="dsUsuarios"

            AutoGenerateColumns="true"></asp:GridView>



Parte 4


https://www.youtube.com/watch?v=7_MnqLoAM9I




jueves, 18 de agosto de 2016

Fundamentos de Bases de Datos: Ejemplos de Query



USE CrediSeguro
GO
SELECT NumeroTarjeta, FecVencimiento AS [Fecha Vencimiento]
     FROM Tarjeta
     WHERE FecVencimiento < GETDATE()
     ORDER BY FecVencimiento;


SELECT *
     FROM Tarjeta;


SELECT *
     FROM Tarjeta
     WHERE LimiteCredito > 15000
     AND YEAR(FecVencimiento) > YEAR(GETDATE())
     AND MONTH(FecVencimiento) > MONTH(GETDATE());


SELECT NumeroTarjeta, FecVencimiento,
     YEAR(FecVencimiento) AS [Año]
     FROM Tarjeta
     ORDER BY YEAR(FecVencimiento);


SELECT   ApellidoPrimero, NombrePrimero
     , NumeroTarjeta, LimiteCredito
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente = Tarjeta.CodCliente
     WHERE ApellidoPrimero = 'Adams'
     ORDER BY ApellidoPrimero, NombrePrimero,
     LimiteCredito DESC;



SELECT ApellidoPrimero, NombrePrimero,
     NumeroTarjeta, LimiteCredito,
     Fecha AS [Fecha Movimiento], Cargo
         FROM Cliente
         INNER JOIN Tarjeta t
              ON Cliente.CodCliente = t.CodCliente
         INNER JOIN Movimiento M
              ON t.CodTarjeta = M.CodTarjeta
         WHERE ApellidoPrimero = 'Adams'      
UNION
SELECT ApellidoPrimero, NombrePrimero,
     NumeroTarjeta, LimiteCredito,
     Fecha AS [Fecha Movimiento], Cargo
         FROM Cliente
         INNER JOIN Tarjeta t
              ON Cliente.CodCliente = t.CodCliente
         INNER JOIN Movimiento M
              ON t.CodTarjeta = M.CodTarjeta
         WHERE ApellidoPrimero = 'Cornett'
         ORDER BY NumeroTarjeta, Fecha;


SELECT Cliente.ApellidoPrimero, Cliente.NombrePrimero,
     Tarjeta.NumeroTarjeta, Tarjeta.LimiteCredito,
     Movimiento.Fecha, Movimiento.Cargo
FROM Cliente
     INNER JOIN Tarjeta ON Cliente.CodCliente = Tarjeta.CodCliente
     INNER JOIN Movimiento ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
WHERE (Cliente.ApellidoPrimero = 'Adams') OR
       (Cliente.ApellidoPrimero = 'Cornett')
ORDER BY Cliente.ApellidoPrimero, Cliente.NombrePrimero,
     Tarjeta.LimiteCredito, Movimiento.Fecha DESC;



SELECT YEAR(Fecha) AS [Año],
     MONTH(Fecha) AS Mes,
     SUM(Cargo) AS SumaCargos, COUNT(Cargo) AS CantidadCargos,
     MAX(Cargo) AS MaximoCargo, MIN(Cargo) AS MinimoCargo
     FROM Movimiento
     GROUP BY YEAR(Fecha), MONTH(Fecha)
     HAVING SUM(Cargo)>250000
     ORDER BY YEAR(Fecha), MONTH(Fecha);


SELECT CodTarjeta
     FROM Tarjeta
     WHERE FecVencimiento>GETDATE();


INSERT INTO Movimiento
     (CodTarjeta, Cargo, Fecha)
VALUES
     (107, 1260, GETDATE());


SELECT *
     FROM Movimiento
     WHERE CodTarjeta = 107
     ORDER BY Fecha DESC;


UPDATE Movimiento
     SET Cargo = 1280
     WHERE CodMovimiento = 5287;



USE CrediSeguro
GO


SELECT Cliente.CodCliente, NombrePrimero, ApellidoPrimero,
     YEAR(GETDATE()) - YEAR(FecNacimiento) AS Edad,
     NumeroTarjeta, FecVencimiento,
     Tarjeta.SaldoActual, Movimiento.Fecha,
     Movimiento.Cargo
     FROM Cliente
     INNER JOIN Tarjeta ON Cliente.CodCliente = Tarjeta.CodCliente
     INNER JOIN Movimiento
     ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE ApellidoPrimero = 'Adams'
     ORDER BY ApellidoPrimero, NombrePrimero; 


SELECT Tarjeta.CodTarjeta, Tarjeta.NumeroTarjeta,
     Tarjeta.FecVencimiento, Tarjeta.LimiteCredito,
     Tarjeta.SaldoActual, Tarjeta.FecSaldo,
     Movimiento.CodMovimiento, Movimiento.Cargo,
     Movimiento.Abono,  Movimiento.Fecha,
     Cliente.NombrePrimero, Cliente.ApellidoPrimero
FROM Tarjeta
     INNER JOIN Movimiento
         ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     INNER JOIN Cliente
         ON Tarjeta.CodCliente = Cliente.CodCliente
WHERE (Tarjeta.NumeroTarjeta = '4111110506895880');


SELECT MAX(Cargo) AS Cargo
     FROM Movimiento;


SELECT COUNT(DISTINCT Cargo) AS Cantidad
     FROM Movimiento;


SELECT Cargo, COUNT(Cargo) AS Cantidad
     FROM Movimiento   
     GROUP BY Cargo
     HAVING COUNT(Cargo) > 3
     ORDER BY Cargo, COUNT(Cargo);


SELECT Cliente.CodCliente, Tarjeta.CodTarjeta
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente = Tarjeta.CodCliente
     WHERE ApellidoPrimero = 'Adams'
     ORDER BY Cliente.CodCliente;


INSERT INTO Movimiento
     (CodTarjeta, Cargo, Fecha)
VALUES
     ( 1075, 1250, GETDATE());


SELECT *
     FROM Movimiento
     WHERE Cargo = 1250;





Fundamentos de Bases de Datos: Ejemplo Normalización

Ejemplo de Normalización de los datos de una Factura

https://drive.google.com/open?id=0B7Ct7K_LTJvSbU9VTVl1ZV9qSzQ

miércoles, 17 de agosto de 2016

Fundamentos de Bases de Datos: Referencias

Data Definition Language


https://msdn.microsoft.com/en-us/library/ff848799.aspx

https://technet.microsoft.com/en-us/library/ff848799(v=sql.110).aspx



Data Manipulation Language


https://msdn.microsoft.com/en-us/library/ff848766.aspx

https://technet.microsoft.com/en-us/library/ff848766(v=sql.110).aspx


Control of Flow Language


https://msdn.microsoft.com/en-us/library/ms174290.aspx

https://technet.microsoft.com/en-us/library/ms174290(v=sql.110).aspx



Data Types


https://msdn.microsoft.com/en-us/library/ms187752.aspx

https://technet.microsoft.com/en-us/library/ms187752(v=sql.110).aspx



Built-In Functions


https://msdn.microsoft.com/en-us/library/ms174318.aspx

Datediff
https://msdn.microsoft.com/en-us/library/ms189794.aspx


Transact-SQL


Transact-SQL Reference (Database Engine)
https://msdn.microsoft.com/en-us/library/bb510741.aspx

CREATE VIEW (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms187956.aspx

Views
https://msdn.microsoft.com/en-us/library/ms190174.aspx

SQL CREATE VIEW Statement
http://www.w3schools.com/sql/sql_view.asp

-- (Comment) (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms181627.aspx

SELECT @local_variable (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms187330.aspx

Create a Stored Procedure
https://msdn.microsoft.com/en-us/library/ms345415.aspx

How to: Create a Stored Procedure (SQL Server Management Studio)
https://msdn.microsoft.com/en-us/library/ms345415(v=sql.105).aspx


RAISERROR (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms178592.aspx


martes, 16 de agosto de 2016

Fundamentos de Bases de Datos: Módulo 02: Tipos de Datos, DDL, DML

Presentación


https://drive.google.com/open?id=0B7Ct7K_LTJvSbG5xNWJRZDF1MGM


Datos Empleados

https://drive.google.com/open?id=0B7Ct7K_LTJvSeldxQmdjNTQtd1U


Horas Extras

https://drive.google.com/open?id=0B7Ct7K_LTJvSdnExQjhCaU1yRlU


Script Completo SistemaNotas2

https://drive.google.com/open?id=0B7Ct7K_LTJvSOHJTTWdZb3dNclk



Ejemplos

USE [master]
GO

/****** Object:  Database [SistemaNotas]    Script Date: 19/10/2016 2:21:05 p. m. ******/
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'SistemaNotas')
BEGIN
CREATE DATABASE [SistemaNotas]
 CONTAINMENT = NONE
 ON  PRIMARY
( NAME = N'SistemaNotas',
      FILENAME = N'C:\DatosDS\SistemaNotas.mdf' ,
      SIZE = 16384KB , MAXSIZE = 1048576KB ,
      FILEGROWTH = 8192KB )
 LOG ON
( NAME = N'SistemaNotas_log',
      FILENAME = N'C:\DatosDS\SistemaNotas_log.ldf' ,
      SIZE = 8192KB , MAXSIZE = 65536KB ,
      FILEGROWTH = 8192KB )
END

GO






Ejemplo CREATE:


USE [SistemaNotas]
GO

/****** Object:  Table [dbo].[Departamentos]    Script Date: 25/10/2016 9:51:10 a. m. ******/
CREATE TABLE [dbo].[Departamentos](
      [Codigo] [int] NOT NULL,
      [Nombre] [varchar](100) NOT NULL,
 CONSTRAINT [PK_Departamentos] PRIMARY KEY CLUSTERED
(
      [Codigo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

/****** Object:  Table [dbo].[Empleados]    Script Date: 25/10/2016 9:51:10 a. m. ******/
CREATE TABLE [dbo].[Empleados](
      [Codigo] [int] IDENTITY(1,1) NOT NULL,
      [CUI] [varchar](13) NOT NULL,
      [NombrePrimero] [varchar](50) NOT NULL,
      [NombreSegundo] [varchar](50) NOT NULL CONSTRAINT [DF_Empleados_NombreSegundo]  DEFAULT (''),
      [ApellidoPrimero] [varchar](50) NOT NULL,
      [ApellidoSegundo] [varchar](50) NOT NULL CONSTRAINT [DF_Empleados_ApellidoSegundo]  DEFAULT (''),
      [FechaNacimiento] [date] NOT NULL CONSTRAINT [DF_Empleados_FechaNacimiento]  DEFAULT (getdate()),
      [CodigoDepartamento] [int] NOT NULL,
      [NIT] [varchar](20) NOT NULL CONSTRAINT [DF_Empleados_NIT]  DEFAULT (''),
 CONSTRAINT [PK_Empleados] PRIMARY KEY CLUSTERED
(
      [Codigo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

/****** Object:  Table [dbo].[HorasExtras]    Script Date: 25/10/2016 9:51:10 a. m. ******/
CREATE TABLE [dbo].[HorasExtras](
      [CodigoEmpleado] [int] NOT NULL,
      [Fecha] [date] NOT NULL CONSTRAINT [DF_HorasExtras_Fecha]  DEFAULT (getdate()),
      [Cantidad] [int] NOT NULL,
 CONSTRAINT [PK_HorasExtras] PRIMARY KEY CLUSTERED
(
      [CodigoEmpleado] ASC,
      [Fecha] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Empleados]  WITH CHECK ADD  CONSTRAINT [FK_Empleados_Departamentos] FOREIGN KEY([CodigoDepartamento])
REFERENCES [dbo].[Departamentos] ([Codigo])
GO

ALTER TABLE [dbo].[Empleados] CHECK CONSTRAINT [FK_Empleados_Departamentos]
GO

ALTER TABLE [dbo].[HorasExtras]  WITH CHECK ADD  CONSTRAINT [FK_HorasExtras_Empleados] FOREIGN KEY([CodigoEmpleado])
REFERENCES [dbo].[Empleados] ([Codigo])
GO

ALTER TABLE [dbo].[HorasExtras] CHECK CONSTRAINT [FK_HorasExtras_Empleados]

GO





Ejemplo SELECT

USE SistemaNotas2
GO

SELECT NombrePrimero, ApellidoPrimero
      FROM Empleados;

SELECT *
      FROM Departamentos;

SELECT CodigoDepartamento, NombrePrimero,
      ApellidoPrimero
      FROM Empleados
      WHERE (CodigoDepartamento = 2
      OR CodigoDepartamento = 3)
      AND ApellidoPrimero LIKE 'P%';

SELECT *
      FROM Empleados
      WHERE ApellidoPrimero = 'Palacios';

SELECT CodigoDepartamento, ApellidoPrimero,
      NombrePrimero, FechaNacimiento
      FROM Empleados
      ORDER BY CodigoDepartamento, ApellidoPrimero;

SELECT FechaNacimiento, ApellidoPrimero,
      NombrePrimero
      FROM Empleados
      WHERE CodigoDepartamento = 2
      ORDER BY YEAR(FechaNacimiento) DESC,
            ApellidoPrimero;

SELECT Departamentos.Nombre, Empleados.ApellidoPrimero,
      Empleados.NombrePrimero
      FROM Departamentos
      INNER JOIN Empleados
      ON Departamentos.Codigo = Empleados.CodigoDepartamento;

-- Comentario
/*
      Comentario
      Multilínea
*/
SELECT D.Nombre AS Departamento, E.ApellidoPrimero,
      E.NombrePrimero
      FROM Departamentos D
      INNER JOIN Empleados E
      ON D.Codigo = E.CodigoDepartamento
      ORDER BY D.Nombre;

SELECT Departamentos.Nombre, Empleados.NombrePrimero,
      Empleados.ApellidoPrimero, HorasExtras.Fecha,
      HorasExtras.Cantidad
      FROM Departamentos
      INNER JOIN Empleados
            ON Departamentos.Codigo = Empleados.CodigoDepartamento
      INNER JOIN HorasExtras
            ON Empleados.Codigo = HorasExtras.CodigoEmpleado
      WHERE YEAR(HorasExtras.Fecha) = 2014
      ORDER BY Departamentos.Nombre;

SELECT COUNT(*) AS Conteo,
      SUM(Cantidad) AS Total,
      AVG(Cantidad) AS Promedio,
      MIN(Cantidad) AS Minimo,
      MAX(Cantidad) AS Maximo
      FROM HorasExtras
      WHERE YEAR(Fecha)=2015;

SELECT YEAR(Fecha) AS [Año],
      COUNT(*) AS Conteo,
      SUM(Cantidad) AS Total
      FROM HorasExtras
      GROUP BY YEAR(Fecha);

SELECT YEAR(Fecha) AS [Año],
      MONTH(Fecha) AS Mes,
      COUNT(*) AS Conteo,
      SUM(Cantidad) AS Total
      FROM HorasExtras
      WHERE CodigoEmpleado BETWEEN 50 AND 450
      GROUP BY YEAR(Fecha), MONTH(Fecha)
      HAVING SUM(Cantidad) > 700
      ORDER BY YEAR(Fecha), MONTH(Fecha);

SELECT Emp.Codigo, Emp.ApellidoPrimero,
      Emp.NombrePrimero,
      (SELECT AVG(Cantidad) AS Promedio
            FROM HorasExtras HE
            WHERE HE.CodigoEmpleado = Emp.Codigo)
      AS Promedio
      FROM Empleados Emp
      WHERE Emp.Codigo BETWEEN 150 AND 200
      ORDER BY Emp.ApellidoPrimero, Emp.NombrePrimero;

SELECT AVG(Cantidad) AS Promedio
            FROM HorasExtras HE
            WHERE HE.CodigoEmpleado = 169;

SELECT CodigoEmpleado,
      YEAR(Fecha) AS [Año],
      MONTH(Fecha) AS Mes,
      SUM(Cantidad) AS Total
      FROM HorasExtras
      GROUP BY CodigoEmpleado, YEAR(Fecha),

      MONTH(Fecha);