Desarrollo de Windows 10 - Base de datos SQLite

En muchas aplicaciones, hay ciertos tipos de datos que tienen algún tipo de relación entre sí. Estos tipos de datos, que son difíciles de almacenar en un archivo, se pueden almacenar en una base de datos.

Si está familiarizado con los tipos de bases de datos, como el servidor SQL o las bases de datos Oracle en cualquier aplicación, entonces es muy fácil de entender. SQLite database.

¿Qué es SQLite?

SQLite es una biblioteca de software que implementa un motor de base de datos transaccional SQL autónomo, sin servidor, sin configuración.

Las características importantes son:

  • SQLite es el motor de base de datos más implementado del mundo.

  • El código fuente de SQLite es de código abierto.

  • Ha tenido un gran impacto en el desarrollo de juegos y aplicaciones móviles, debido a su portabilidad y tamaño reducido.

Ventajas de SQLite

Las siguientes son las ventajas de SQLite:

  • Es una base de datos muy ligera.
  • Es una plataforma independiente y funciona en todas las plataformas.
  • Tiene una pequeña huella de memoria.
  • Es confiable.
  • No es necesario realizar ninguna configuración e instalación.
  • No tiene dependencias.

Usar SQLite en sus aplicaciones de la Plataforma universal de Windows (UWP), debe seguir los pasos que se indican a continuación.

  • Cree una nueva aplicación en blanco universal de Windows con el nombre UWPSQLiteDemo.

  • Ve a la Toolsy seleccione Extensiones y actualizaciones. Se abrirá el siguiente cuadro de diálogo.

  • Después de seleccionar Extensiones y actualizaciones, se abrirá la siguiente ventana.
  • Ahora seleccione el Online y busque SQLite, en el panel izquierdo.

  • Descargue e instale SQLite para la plataforma de aplicaciones universal.

  • Ahora, vaya al menú Herramientas nuevamente y seleccione NuGet Package Manager > Package Manager Console opción de menú como se muestra a continuación.

  • Escriba el siguiente comando en la Consola del Administrador de paquetes y presione enter para ejecutar este comando:

Install-Package SQLite.Net-PCL
  • Ahora haga clic derecho en References en el explorador de soluciones y seleccione Add References.

  • Se abrirá el siguiente cuadro de diálogo.
  • Seleccione Extensions desde el panel izquierdo debajo Universal Windows, marque SQLite para Universal App Platform en el panel central y haga clic en Aceptar.

  • Ahora está listo para usar SQLite en sus aplicaciones para UWP.

Puede crear una base de datos utilizando el siguiente código.

string path = Path.Combine(Windows.Storage.ApplicationData.
   Current.LocalFolder.Path, "db.sqlite"); 

SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new 
   SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

Para crear una tabla necesitas llamar CreateTable método con objeto de nombre de tabla.

conn.CreateTable<Customer>();

Puede insertar los datos en su tabla utilizando el siguiente código.

conn.Insert(new Customer(){
   Name = textBox.Text, 
   Age = textBox1.Text 
});

A continuación se muestra el código para recuperar datos de la tabla.

var query = conn.Table<Customer>(); 
string id = ""; 
string name = ""; 
string age = ""; 
 
foreach (var message in query) { 
   id = id + " " + message.Id; 
   name = name + " " + message.Name; 
   age = age + " " + message.Age; 
}

Entendamos cómo crear una base de datos, una tabla y cómo insertar y recuperar los datos de la base de datos con la ayuda de un ejemplo simple. Agregaremos Nombre y edad y luego recuperaremos los mismos datos de la tabla. A continuación se muestra el código XAML en el que se agregan diferentes controles.

<Page 
   x:Class = "UWPSQLiteDemo.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:local = "using:UWPSQLiteDemo" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d"> 
	
   <Grid Background = "{ThemeResource ApplicationPageBackgroundThemeBrush}" >
      <Button x:Name = "Retrieve" Content = "Retrieve" HorizontalAlignment = "Left"  
         VerticalAlignment = "Top" Margin = "384,406,0,0"  
         Click = "Retrieve_Click"/>
			
      <Button x:Name = "Add" Content = "Add" HorizontalAlignment = "Left"  
         VerticalAlignment = "Top" Margin = "291,406,0,0" Click = "Add_Click"/>
			
      <TextBlock x:Name = "textBlock" HorizontalAlignment = "Left"  
         TextWrapping = "Wrap" Text = "Name" VerticalAlignment = "Top"  
         Margin = "233,280,0,0" Width = "52"/>
			
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Margin = "289,274,0,0" Width = "370"/>
			
      <TextBlock x:Name = "textBlock1" HorizontalAlignment = "Left"  
         TextWrapping = "Wrap" Text = "Age" VerticalAlignment = "Top"  
         Margin = "233,342,0,0" Width = "52"/>
			
      <TextBox x:Name = "textBox1" HorizontalAlignment = "Left" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Margin = "289,336,0,0" Width = "191"/>
			
      <TextBlock x:Name = "textBlock2" HorizontalAlignment = "Left"  
         Margin = "290,468,0,0" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Width = "324" Height = "131"/>
			
   </Grid>
	
</Page>

A continuación se muestra la implementación de C # para eventos y SQLite database.

using SQLite.Net.Attributes; 

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 

using Windows.Foundation; 
using Windows.Foundation.Collections; 

using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation;  

// The Blank Page item template is documented at 
   http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 
 
namespace UWPSQLiteDemo {
 
   /// <summary>
      /// An empty page that can be used on its own or navigated to within a Frame.
   /// </summary>
	
   public sealed partial class MainPage : Page {
      string path; 
      SQLite.Net.SQLiteConnection conn; 
		
      public MainPage(){
         this.InitializeComponent();  
         path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,
            "db.sqlite"); 
         conn = new SQLite.Net.SQLiteConnection(new 
            SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);  
         conn.CreateTable<Customer>(); 
      }
		
      private void Retrieve_Click(object sender, RoutedEventArgs e) { 
         var query = conn.Table<Customer>(); 
         string id = ""; 
         string name = ""; 
         string age = "";  
			
         foreach (var message in query) {
            id = id + " " + message.Id; 
            name = name + " " + message.Name; 
            age = age + " " + message.Age; 
         }
			
         textBlock2.Text = "ID: " + id + "\nName: " + name + "\nAge: " + age; 
      }  
		
      private void Add_Click(object sender, RoutedEventArgs e){ 
       
         var s = conn.Insert(new Customer(){
            Name = textBox.Text, 
            Age = textBox1.Text 
         }); 
			
      } 
   } 
	
   public class Customer {
      [PrimaryKey, AutoIncrement] 
      public int Id { get; set; } 
      public string Name { get; set; } 
      public string Age { get; set; } 
   } 
	
}

Cuando se compile y ejecute el código anterior, verá la siguiente ventana.

Introducir el Name y Age y haga clic en el Add botón.

Ahora haga clic en el Retrievebotón. Verá los siguientes datos en elText Block.

El campo ID es un campo de clave principal y de incremento automático, que se especifica en la clase Cliente.

[PrimaryKey, AutoIncrement] 
public int Id { get; set; }