Skip to main content

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:

Diagrama de clases

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 columnas PRECIO, NOMBRE y GENERO de la tabla en base al id recibido.

  • Método Guardar: Guarda un nuevo registro, tener en cuenta que CODIGO_JUEGO es 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 tipo Biblioteca.

  • 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:

Diagrama de clases

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étodo Leer cada vez que ocurra un cambio a las entidades. Tener en cuenta los métodos Update y Refresh.

  • Botón Salir: Cierra el formulario.

  • Botón Alta: Crea una nueva instancia de FrmAlta para cargar nuestro nuevo juego a la tabla. Retorna DialogResult.OK una vez terminada la operación.

  • Botón Modificar: Reutiliza FrmAlta para 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

imgVideoimgCódigo