Ejercicio C02 - La Pokedex
Consigna
Antes de empezar, descargar la cáscara del proyecto y trabajar sobre la misma.
Parte I - Crear la Base de Datos
Crear la base de datos
POKEDEX_DataBase
Crear la tabla
Pokemon
(id int PK, nombre varchar(50), tipo int FK, entrenador varchar,urlImagen varchar) y ninguno de sus datos puede sernull
Crear la tabla
Tipos
(idTipo int PK, nombre varchar)En VS crear la clase
Pokemon
con todos los atributos que declaramos en la tabla SQL
❗ El tipo
de Pokemon deber ser string en la clase Pokemon del VS y NO int
Parte II - Interfaz Grafica
Una vez creadas las bases de datos, es hora de trabajar en la interfaz y la conexión
Realizar la integración entre el login y el form principal de modo de que el entrenador elegido, se vea reflejado en el form principal arriba a la derecha (las fotos están todos en un imageList donde pueden manejarlas por index)
Parte III - Realizar un alta
Realizar la integración para que al apretar el botón
+
se entre al formulario de AltaEn este formulario respetar las siguiente pautas:
- El
combobox
tipo debe ser cargado con todos los tipos de la base datos, es decir que se cargan leyendo la base de datos y trayendo el texto de cada tipo. - El
textbox
entrenador es FIJO. Los pokemones que se agregan siempre van al entrenador logueado - La imagen tiene que disparar un
FileDialog
que nos permite buscar la imagen y guardarnos su dirección local (tartar de tener las imágenes en una carpeta escritorio para que la ruta no sea demasiado larga) - Al confirmar se deberá validar los campos e instanciar un nuevo pokemón, para que a continuación ese Pokemon se guarde en la base de datos.
- El
❗ Los pokemones no pueden tener ID repetidas, elegir un lugar donde validar ese dato.
Parte IV - Traer un Pokemon
Realizar la lógica para que al apretar el botón
Enter
(de la UI no del teclado) el programa lance una búsqueda a la base de datos y traiga todos los registros con coincidencia (al buscar por ID o por nombre debería solo traer un registro por búsqueda)Mostrar esa información en los
labels
y mostrar la foto (recordar el element newBitmap
que recibe una dirección de imagen para mostrarla)
Punto EXTRA pero muy útil para las próximas partes del programa, actualizer el lblNumeroRegistros
de acorde a los resultados de nuestra búsqueda en SQL
- Los botones de flechita del fomulario deben estar deshabilitados cuando la cantidad de registros sean 1 o 0
Punto EXTRA Hacer funcionar los botones físicos del programa (teclado de la UI)
Parte V - Eliminar un Pokemon.
Realizar la lógica para que al apretar el botón del tacho de basura, el programa nos pregunte si estamos seguros de querer borrar dicho Pokemon. Si el usuario presionar Aceptar
u OK
(o lo que elijan ustedes) deberán borrar ese Pokemon de la base de datos
Punto EXTRA Actualizar la información del form principal luego de borrar el Pokemon
Parte VI - Buscar por Entrenador
Realizar la lógica para que al apretar el botón de “Buscar por Entrenador” se abra el formulario de Filtro.
Este formulario de filtro recibirá como parámetro qué tipo de filtro estamos usando y de esa forma determinar que controles debe cargar
Si recibe el filtro de entrenador (puede ser un string, un int, lo que les sea más comodo) deberán cargar un
ComboBox
con los nombres de todos los entrenadores QUE TENGA POKEMONES. Es decir, que elcombobox
se carga leyendo la base de datos SQL y trayendo los nombres de los entrenadores que aparecen en la columna de entrenador en la tabla Pokemones (sin repetir)Luego, al seleccionar y confirmar debe lanzarse la query que nos traiga todos los registros que cumplen ese criterio y almacenarlo para poder pasarlo al form principal.
Al apretar
confirmar
, este form debe cerrarse y volver al principal con la nueva lista cargada para que podamos verAcá deben habilitarse los botones de siguiente y anterior (las flechitas) para que podamos ver todos los Pokemones
Parte VII - Buscar por Entrenador
Implementar un filtro por Entrenador
Parte VIII - Buscar por Tipo
Exactamente igual que entrenador, pero con tipo. Combobox
se carga de SQL, se confirma, se traen los registros y se muestran en el principal
Parte IX - Buscar por Rango
Realizar la lógica para que al apretar el botón de
Buscar por Rango
se abra el formulario deFiltro
.Este formulario de filtro recibirá como parámetro qué tipo de filtro estamos usando y de esa forma determinar que controles debe cargar
Si recibe el filtro de rango (puede ser un string, un int, lo que les sea más comodo) deberán cargar dos
numericUpDown
que determinen el valor mínimo y máximo de nuestra búqueda
Luego, al seleccionar y confirmar debe lanzarse la query que nos traiga todos los registros que cumplen ese criterio y almacenarlo para poder pasarlo al form principal.
Al apretar confirmar, este form debe cerrarse y volver al principal con la nueva lista cargada para que podamos ver
En este momento deben habilitarse los botones de siguiente y anterior (las flechitas) para que podamos ver todos los Pokemones
Parte X - Busqueda Personalizada
Realizar la lógica para que al apretar el botón de
Buscar por Rango
se abra el formulario deFiltro
.Este formulario de filtro recibirá como parámetro qué tipo de filtro estamos usando y de esa forma determinar que controles debe cargar
Si recibe el filtro de Personalizada (puede ser un string, un int, lo que les sea más comodo) deberán cargar un
textbox
donde el usuario podrá cargar su query personalizada. Por ejemploeSELECT * FROM Pokemones
Luego, al seleccionar y confirmar debe lanzarse la query que nos traiga todos los registros que cumplen ese criterio y almacenarlo para poder pasarlo al form principal.
Al apretar confirmar, este form debe cerrarse y volver al principal con la nueva lista cargada para que podamos ver
En este momento deben habilitarse los botones de siguiente y anterior (las flechitas) para que podamos ver todos los Pokemones
Parte XI - La Pokedex serializadora
Realizar la lógica para que al apretar el botón de
Serializar
se abra el formulario deFrmSerializacion
.Este formulario tiene un
textbox
donde podremos el nombre de nuestro archivo (el nombre que queremos ponerle para guardarlo)Luego a través del
radiobutton
seleccionamos el tipo de serializaciónFinalmente al confirmar debemos guardar nuestra actual búsqueda en un archive
JSON
oXML
Por ejemplo: Si yo había realizado una búsqueda por entrenador, al presionar serializar puedo poner “pokemonesDeAsh”, luego seleccionar JSON y eso me debería guardar todos los pokemones de la lista (no hay que realizar la consulta a SQL devuelta, hay que traer la info desde el form principal)
Si yo busco un Pokemon solo, al presionar serializar puedo poner “pokemonID23”, luego seleccionar XML y eso me debería guardar la información de ese Pokemon
Autor: Ignacio Smirlian
Resolución
Video | Código |
---|