Rozwój systemu Windows 10 - baza danych SQLite

W wielu aplikacjach istnieją pewne typy danych, które są ze sobą powiązane. Te typy danych, które są trudne do przechowywania w pliku, mogą być przechowywane w bazie danych.

Jeśli znasz typy baz danych, takie jak SQL Server lub bazy danych Oracle w dowolnej aplikacji, to jest to bardzo łatwe do zrozumienia SQLite database.

Co to jest SQLite?

SQLite to biblioteka oprogramowania, która implementuje niezależny, pozbawiony serwera, bezkonfiguracyjny, transakcyjny silnik bazy danych SQL.

Ważne cechy to -

  • SQLite to najpowszechniej stosowany silnik bazy danych na świecie.

  • Kod źródłowy programu SQLite to Open source.

  • Miał duży wpływ na rozwój gier i aplikacji mobilnych, ze względu na swoją przenośność i niewielkie rozmiary.

Zalety SQLite

Oto zalety SQLite -

  • Jest to bardzo lekka baza danych.
  • Jest niezależny od platformy i działa na wszystkich platformach.
  • Ma mały ślad pamięci.
  • Jest niezawodny.
  • Nie ma potrzeby żadnej konfiguracji i instalacji.
  • Nie ma żadnych zależności.

Używać SQLite w aplikacjach Universal Windows Platform (UWP) należy wykonać poniższe czynności.

  • Utwórz nową pustą aplikację Universal Windows o nazwie UWPSQLiteDemo.

  • Przejdź do Toolsmenu i wybierz Rozszerzenia i aktualizacje. Otworzy się następujące okno dialogowe.

  • Po wybraniu rozszerzeń i aktualizacji otworzy się następujące okno.
  • Teraz wybierz plik Online opcję i wyszukaj SQLite w lewym okienku.

  • Pobierz i zainstaluj SQLite dla Universal App Platform.

  • Teraz przejdź ponownie do menu Narzędzia i wybierz NuGet Package Manager > Package Manager Console opcję menu, jak pokazano poniżej.

  • Napisz następujące polecenie w konsoli Menedżera pakietów i naciśnij klawisz Enter, aby wykonać to polecenie -

Install-Package SQLite.Net-PCL
  • Teraz kliknij prawym przyciskiem myszy References w eksploratorze rozwiązań i wybierz Add References.

  • Otworzy się następujące okno dialogowe.
  • Wybierz Extensions od lewego okienka poniżej Universal Windows, zaznacz SQLite for Universal App Platform w środkowym okienku i kliknij OK.

  • Teraz możesz zacząć używać SQLite w swoich aplikacjach UWP.

Bazę danych można utworzyć przy użyciu następującego kodu.

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

Aby stworzyć stół, musisz zadzwonić CreateTable metoda z obiektem nazwy tabeli.

conn.CreateTable<Customer>();

Możesz wstawić dane do tabeli, używając następującego kodu.

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

Poniżej podano kod do pobierania danych z tabeli.

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

Zrozummy, jak utworzyć bazę danych, tabelę oraz jak wstawiać i pobierać dane z bazy danych za pomocą prostego przykładu. Dodamy imię i wiek, a następnie pobierzemy te same dane z tabeli. Poniżej podano kod XAML, w którym dodawane są różne kontrolki.

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

Poniżej podano implementację C # dla zdarzeń i 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; } 
   } 
	
}

Kiedy powyższy kod zostanie skompilowany i wykonany, zobaczysz następujące okno.

Wejdz do Name i Age i kliknij Add przycisk.

Teraz kliknij Retrieveprzycisk. Zobaczysz następujące dane naText Block.

Pole ID to pole klucza podstawowego i automatycznego zwiększania, które jest określone w klasie klienta.

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