2. ODS
● 4.3 De aquí a 2030, asegurar el
acceso igualitario de todos los
hombres y las mujeres a una
formación técnica, profesional
y superior de calidad, incluida
la enseñanza universitaria
META
3. La mejor forma de predecir el futuro es crearlo
Abraham Lincoln
6. Introducción
SQLITE
El trabajo con datos en dispositivos móviles se ha convertido ya en algo común y habitual en el
desarrollo de aplicaciones. Existe una gran variedad de tipos de datos y formas de almacenamiento:
● Archivos de texto. Texto plano o html cacheado en el espacio de almacenamiento aislado de la
aplicación.
● Imágenes. En el espacio de almacenamiento aislado de la aplicación o almacenadas en
directorios conocidos del sistema.
● Archivos serializados. Archivos XML o Json con objetos serializados.
● Bases de datos. Cuando se requieren datos estructurados, obtener información más compleja
con consultas avanzadas entre otro tipo de necesidades, la posibilidad de las bases de datos
es la elección idónea.
7. Introducción
SQLITE
SQLite es un motor de base de datos Open Source utilizado en todas las plataformas móviles y
adoptado tanto por Apple como Google como Microsoft. El uso de SQLite en aplicaciones móviles
es una gran opción ya que:
● La base de datos es pequeña y fácil de portar.
● La base de datos se concentra en un pequeño archivo.
● Implementa la mayor parte del estándar SQL92.
8. Introducción
SQLITE
Las ventajas de utilizar una base de datos son múltiples:
● Almacenamiento estructurado con eficacia alta.
● Posibilidad de utilizar consultas y aplicar filtros.
● Posibilidad de reutilizar conocimientos de base de datos en la gestión de datos en nuestras
aplicaciones móviles.
11. Implementación
Crud
Tras añadir la referencia vamos a crear una interfaz que defina cómo obtener la conexión con la
base de datos y abstraer la funcionalidad específica de cada plataforma. Trabajando con SQLite, el
único trabajo específico a implementar en cada plataforma es determinar la ruta a la base de datos.
17. Implementación
LOGIN
Esta pantalla nos servirá como el inicio de sesión en la interfaz de usuario
Crearemos:
1 Entry para el usuario
1 Entry para la contraseña
1 Button para Iniciar sesión
1 Button para ir a la pantalla de registro
20. Implementación
LOGIN
Crearemos un método de tipo IEnumerable para llegar la clase Estudiante, está
devolverá un valor parecido a un arreglo, mandaremos como parámetro a la conexión, el
usuario y la contraseña del usuario que iniciará sesión.
Y agregamos el método para abrir el registro
21. Implementación
LOGIN - Botón
El siguiente código lo que trata es encontrar a la base de datos, esta debe ser la que
escribimos en la clase de cada plataforma. Seguidamente crearemos una variable del
tipo IEnumerable<Estudiante> que obtendrá el valor obtenido del método, enviando
como variables a los Entry de usuario y contraseña.
Hacemos la validación, si la variable contiene más de un registro con dicho usuario y
contraseña que inicie sesión y sino que mande un mensaje.
23. Implementación
REGISTRAR
Crearemos un formulario para registrar en la tabla Estudiante, este formulario
tendrá los siguiente elementos esenciales
Entry -> Nombre
Entry-> Usuario
Entry-> Contraseña
Button-> Para registrar
26. Implementación
CONSULTA REGISTRO
Una vez que inicie sesión el usuario podrá ver un listado, es decir; utilizaremos un
ListView para ver todos los registros guardado
Dentro del código XAML usaremos la siguiente plantilla que usa el ya conocido
DataTemplate y por DataBinding accederemos a las propiedades de la clase
Nota: aquí podemos agregar la propiedad ItemSelected al control de ListView de la
vista, de la siguiente manera:
<ListView x:Name=”ListaUsuarios” ItemSelected=”OnSelection”>
28. Implementación
CONSULTA REGISTRO
Una vez más crearemos la variable de conexión que se inicializa en el constructor de la clase,
además de una variable del tipo ObservableCollection de _TablaEstudiante.
En el método OnAppearing accedemos a la tabla _TablaEstudiantey convertimos a lista con el
método ToListAsync(), todo eso lo mandamos a la variable TablaEstudiante
Esto una ver más lo pasamos a la variable tipo ObservableCollection que si bien también se
puede comprender como una lista.
Por último llenamos nuestro ListView con dicha variable que contiene los registros, y hasta
este punto podremos ver todos los registros de la tabla
30. Implementación
ELEMENTO.XAML
En el código XAML tendremos un formulario para editar el elemento seleccionado con los
mismos campos que se pretenden afectar, también dos opciones para eliminar o para editar
31. Implementación
ELEMENTO.XAML.CS
Crearemos los siguientes dos métodos, en caso de ELIMINAR solamente pasaremos como
parámetro al Id por eliminar y dentro del método ejecutamos la consulta DELETE FROM, para
el caso de EDITAR mandaremos los parámetros de nombre, usuario y contraseña y
ejecutamos dicho Query, por último un método para limpiar el formulario después de editar
32. Implementación
ELEMENTO.XAML.CS
Dentro de la clase tendremos las siguientes variables, una para igualar el Id parametro, la variable de
conexión SQLite y otras dos para almacenar los resultados de cada consulta.
Nota: En el constructor igualamos al Id parámetro con la variable de la clase y usamos ese id para
modificar el mensaje que se muestra en pantalla.
33. Implementación
ELEMENTO
Ahora dentro del evento de cada botón.
En variable databasePath accedemos a la base de datos, como mencioné anteriormente ¡Debe ser la
misma que la que escribimos en la clase SQLiteDB de cada plataforma!
Una vez hecho esto hacemos la conexión con la varianle db y mandamos a la ruta de la base de
datos.
ResultadoUpdate es la variable que definimos al inicio de la clase, le asignamos como valor al
resultado del método Update ya creado y mandando como parámetro los valores a modificar. Se
añadió un DisplayAlert para cada acción
En el botón de eliminar haremos lo mismo pero en ResuldatoDelete le daremos el resultado del
método Delete, mandando como parámetro el Id del registro que será eliminado