Développement Windows 10 - Base de données SQLite

Dans de nombreuses applications, il existe certains types de données, qui ont une sorte de relation les unes avec les autres. Ces types de données, difficiles à stocker dans un fichier, peuvent être stockés dans une base de données.

Si vous êtes familier avec les types de bases de données, tels que les bases de données SQL Server ou Oracle dans n'importe quelle application, alors il est très facile à comprendre SQLite database.

Qu'est-ce que SQLite?

SQLite est une bibliothèque de logiciels qui implémente un moteur de base de données SQL transactionnel autonome, sans serveur, sans configuration.

Les caractéristiques importantes sont -

  • SQLite est le moteur de base de données le plus déployé au monde.

  • Le code source de SQLite est Open source.

  • Il a eu un impact important sur le développement de jeux et d'applications mobiles, en raison de sa portabilité et de son faible encombrement.

Avantages de SQLite

Voici les avantages de SQLite -

  • C'est une base de données très légère.
  • Il est indépendant de la plateforme et fonctionne sur toutes les plateformes.
  • Il a une petite empreinte mémoire.
  • C'est fiable.
  • Pas besoin de configuration et d'installation.
  • Il n'a pas de dépendances.

Utiliser SQLite dans vos applications de plateforme Windows universelle (UWP), vous devez suivre les étapes ci-dessous.

  • Créer une nouvelle application vide Windows universelle avec le nom UWPSQLiteDemo.

  • Aller au Toolset sélectionnez Extensions et mises à jour. La boîte de dialogue suivante s'ouvre.

  • Après avoir sélectionné Extensions et mises à jour, la fenêtre suivante s'ouvre.
  • Sélectionnez maintenant le Online et recherchez SQLite, dans le volet gauche.

  • Téléchargez et installez SQLite pour Universal App Platform.

  • Maintenant, allez à nouveau dans le menu Outils et sélectionnez NuGet Package Manager > Package Manager Console option de menu comme indiqué ci-dessous.

  • Écrivez la commande suivante dans la console du gestionnaire de package et appuyez sur Entrée pour exécuter cette commande -

Install-Package SQLite.Net-PCL
  • Maintenant, faites un clic droit sur References dans l'explorateur de solutions et sélectionnez Add References.

  • La boîte de dialogue suivante s'ouvre.
  • Sélectionner Extensions dans le volet gauche sous Universal Windows, vérifiez SQLite pour Universal App Platform dans le volet central, puis cliquez sur OK.

  • Vous êtes maintenant prêt à utiliser SQLite dans vos applications UWP.

Vous pouvez créer une base de données à l'aide du code suivant.

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);

Pour créer une table, vous devez appeler CreateTable méthode avec objet de nom de table.

conn.CreateTable<Customer>();

Vous pouvez insérer les données dans votre table à l'aide du code suivant.

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

Ci-dessous est le code pour récupérer les données de la table.

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; 
}

Comprenons comment créer une base de données, une table et comment insérer et récupérer les données de la base de données à l'aide d'un exemple simple. Nous ajouterons le nom et l'âge, puis nous récupérerons les mêmes données de la table. Vous trouverez ci-dessous le code XAML dans lequel différents contrôles sont ajoutés.

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

Vous trouverez ci-dessous l'implémentation C # pour les événements et 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; } 
   } 
	
}

Lorsque le code ci-dessus est compilé et exécuté, vous verrez la fenêtre suivante.

Entrer le Name et Age et cliquez sur le Add bouton.

Cliquez maintenant sur le Retrievebouton. Vous verrez les données suivantes sur leText Block.

Le champ ID est un champ Clé primaire et incrémentation automatique, qui est spécifié dans la classe Client.

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