Windows 10-Entwicklung - SQLite-Datenbank

In vielen Anwendungen gibt es bestimmte Datentypen, die in irgendeiner Beziehung zueinander stehen. Diese Datentypen, die schwer in einer Datei zu speichern sind, können in einer Datenbank gespeichert werden.

Wenn Sie mit den Datenbanktypen wie SQL Server- oder Oracle-Datenbanken in einer Anwendung vertraut sind, ist dies sehr einfach zu verstehen SQLite database.

Was ist SQLite?

SQLite ist eine Softwarebibliothek, die ein eigenständiges, serverloses, transaktionsfreies SQL-Transaktionsdatenbankmodul implementiert.

Wichtige Funktionen sind -

  • SQLite ist das am weitesten verbreitete Datenbankmodul der Welt.

  • Der Quellcode für SQLite ist Open Source.

  • Aufgrund seiner Portabilität und seines geringen Platzbedarfs hat es einen großen Einfluss auf die Entwicklung von Spielen und mobilen Anwendungen.

Vorteile von SQLite

Das Folgende sind die Vorteile von SQLite -

  • Es ist eine sehr leichte Datenbank.
  • Es ist plattformunabhängig und funktioniert auf allen Plattformen.
  • Es hat einen kleinen Speicherbedarf.
  • Es ist zuverlässig.
  • Keine Einrichtung und Installation erforderlich.
  • Es hat keine Abhängigkeiten.

Benutzen SQLite In Ihren UWP-Anwendungen (Universal Windows Platform) müssen Sie die folgenden Schritte ausführen.

  • Erstellen Sie eine neue leere Universal Windows-App mit dem Namen UWPSQLiteDemo.

  • Gehe zum ToolsMenü und wählen Sie Erweiterungen und Updates. Der folgende Dialog wird geöffnet.

  • Nach Auswahl von Erweiterungen und Updates wird das folgende Fenster geöffnet.
  • Wählen Sie nun die Online Option und suchen Sie im linken Bereich nach SQLite.

  • Laden Sie SQLite für Universal App Platform herunter und installieren Sie es.

  • Gehen Sie nun erneut zum Menü Extras und wählen Sie NuGet Package Manager > Package Manager Console Menüoption wie unten gezeigt.

  • Schreiben Sie den folgenden Befehl in die Package Manager-Konsole und drücken Sie die Eingabetaste, um diesen Befehl auszuführen:

Install-Package SQLite.Net-PCL
  • Klicken Sie nun mit der rechten Maustaste auf References im Lösungs-Explorer und wählen Sie Add References.

  • Der folgende Dialog wird geöffnet.
  • Wählen Extensions von der linken Scheibe unter Universal WindowsÜberprüfen Sie im mittleren Bereich SQLite für Universal App Platform und klicken Sie auf OK.

  • Jetzt können Sie SQLite in Ihren UWP-Anwendungen verwenden.

Sie können eine Datenbank mit dem folgenden Code erstellen.

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

Um eine Tabelle zu erstellen, müssen Sie aufrufen CreateTable Methode mit Tabellennamenobjekt.

conn.CreateTable<Customer>();

Sie können die Daten mit dem folgenden Code in Ihre Tabelle einfügen.

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

Unten ist der Code zum Abrufen von Daten aus der Tabelle angegeben.

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

Lassen Sie uns anhand eines einfachen Beispiels verstehen, wie Sie eine Datenbank und eine Tabelle erstellen und die Daten einfügen und aus der Datenbank abrufen. Wir werden Name und Alter hinzufügen und dann die gleichen Daten aus der Tabelle abrufen. Unten ist der XAML-Code angegeben, in dem verschiedene Steuerelemente hinzugefügt werden.

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

Im Folgenden ist die C # -Implementierung für Ereignisse und angegeben 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; } 
   } 
	
}

Wenn der obige Code kompiliert und ausgeführt wird, wird das folgende Fenster angezeigt.

Geben Sie die Name und Age und klicken Sie auf Add Taste.

Klicken Sie nun auf die RetrieveTaste. Sie sehen die folgenden Daten auf derText Block.

Das ID-Feld ist ein Feld für Primärschlüssel und automatische Inkrementierung, das in der Kundenklasse angegeben ist.

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