Ejercicio I03 - Esto definitivamente no es Steam
Consigna
Se trabajará sobre una aplicación de Windows Forms para realizar operaciones de ABML en base a dos tablas relacionadas.
Antes de empezar, descargar la cáscara del proyecto y trabajar sobre la misma.
Parte I
Copiar el siguiente script de SQL y ejecutarlo en SQL Server Management Studio (SSMS):
CREATE DATABASE [EJERCICIOS_UTN];
GO
USE [EJERCICIOS_UTN];
GO
CREATE TABLE [EJERCICIOS_UTN].dbo.JUEGOS
(
CODIGO_JUEGO INT IDENTITY(1,1) PRIMARY KEY ,
CODIGO_USUARIO INT NOT NULL,
NOMBRE VARCHAR(255) NOT NULL ,
PRECIO FLOAT NOT NULL,
GENERO VARCHAR(255) NOT NULL,
);
GO
Insert into JUEGOS VALUES (1000,'HALO: MCC',1500,'FPS')
GO
CREATE TABLE [EJERCICIOS_UTN].dbo.USUARIOS
(
CODIGO_USUARIO INT IDENTITY(1000,1) PRIMARY KEY ,
EMAIL VARCHAR(255) NOT NULL ,
USERNAME VARCHAR(255) NOT NULL,
PASSWORD VARCHAR(255) NOT NULL,
);
GO
Insert into USUARIOS VALUES ('lauti@gmail','lgalarza','1234')
Insert into USUARIOS VALUES ('mauricio@gmail','mcerizza','4321')
Insert into USUARIOS VALUES ('esteban@gmail','eprieto','4532')
Al refrescar el SSMS, deberían ver la base de datos EJERCICIOS_UTN creada con dos tablas: USUARIOS y JUEGOS.
Parte II
Crear una aplicación de tipo biblioteca de clases y agregar los elementos del siguiente diagrama:

Clase Juego
Contendrá todos los elementos de la tabla JUEGO con sus propiedades en sólo lectura y sus constructores correspondientes.
Clase Usuario
Contendrá solo el username y el codigoUsuario como atributos y una única propiedad sólo lectura, además de su respectivo constructor.
La sobrecarga del método ToString retornara el username.
Clase JuegoDAO
Esta clase estática será la encargada de realizar todas las operaciones sobre la tabla JUEGOS.
Se deberán instanciar sus atributos en el constructor de la clase.
Método
Eliminar: Elimina un juego de la tabla en base al id recibido.Método
Modificar: Modifica las columnasPRECIO,NOMBREyGENEROde la tabla en base al id recibido.Método
Guardar: Guarda un nuevo registro, tener en cuenta queCODIGO_JUEGOes una columna de identidad.Método
Leer: Realiza una consulta a la base de datos que traiga los datos de los usuarios y sus juegos para instanciar objetos de tipoBiblioteca.Método
LeerPorId: Retorna un juego de la base de datos a partir del id recibido.
Clase UsuarioDAO
Esta clase también estática será la encargada de realizar las operaciones sobre la tabla USUARIOS.
Como en JuegoDao sus atributos van a ser inicializados en el constructor.
El método Leer realizará una consulta para traer las columnas USERNAME y CODIGO_USUARIO de la tabla.
Parte III
Continuar con el proyecto de Windows Forms provisto en la cáscara y seguir el siguiente diagrama:

Formulario FrmBiblioteca
Se encuentra compuesto por cuatro botones y un control de tipo DataGridView, en este control vamos a tener cargada nuestra colección de objetos Biblioteca.
Método
RefrescarBiblioteca: Realiza las llamadas al métodoLeercada vez que ocurra un cambio a las entidades. Tener en cuenta los métodosUpdateyRefresh.Botón
Salir: Cierra el formulario.Botón
Alta: Crea una nueva instancia deFrmAltapara cargar nuestro nuevo juego a la tabla. RetornaDialogResult.OKuna vez terminada la operación.Botón
Modificar: ReutilizaFrmAltapara poder modificar toda la información del juego pero sin dejarle utilizar el combo de usuarios.
Para realizar las operaciones de baja y modificación vamos recuperar el elemento del DatagridView y realizar la lógica necesaria para eliminarlo o modificarlo. Tener en cuenta que cuando vayamos a modificar el juego vamos a tener que mostrarle al usuario todos los datos del juego.
Recordar siempre refrescar el DataGridView una vez terminada cualquier operación de tipo ABM.
Formulario FrmAlta
Este formulario se va a encargar de guardar o modificar el juego en la base de datos, para eso vamos a disponer del botón Guardar que dependiendo si es una modificación o un alta deberá realizar la lógica correspondiente.
El método PintarForm se va a encargar de mostrarle al usuario todos los datos del juego a modificar.
Resolución
| Video | Código |
|---|