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_DataBaseCrear la tabla
Pokemon(id int PK, nombre varchar(50), tipo int FK, entrenador varchar,urlImagen varchar) y ninguno de sus datos puede sernullCrear la tabla
Tipos(idTipo int PK, nombre varchar)En VS crear la clase
Pokemoncon 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
comboboxtipo 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
textboxentrenador es FIJO. Los pokemones que se agregan siempre van al entrenador logueado - La imagen tiene que disparar un
FileDialogque 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
labelsy mostrar la foto (recordar el element newBitmapque 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
ComboBoxcon los nombres de todos los entrenadores QUE TENGA POKEMONES. Es decir, que elcomboboxse 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 Rangose 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
numericUpDownque 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 Rangose 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
textboxdonde 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
Serializarse abra el formulario deFrmSerializacion.Este formulario tiene un
textboxdonde podremos el nombre de nuestro archivo (el nombre que queremos ponerle para guardarlo)Luego a través del
radiobuttonseleccionamos el tipo de serializaciónFinalmente al confirmar debemos guardar nuestra actual búsqueda en un archive
JSONoXML
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 |
|---|