Windows 10 Geliştirme - SQLite Veritabanı

Çoğu uygulamada, birbirleriyle bir tür ilişki içinde olan belirli veri türleri vardır. Bir dosyada saklanması zor olan bu tür veriler bir veritabanında saklanabilir.

Herhangi bir uygulamadaki SQL sunucusu veya Oracle veritabanları gibi veritabanı türlerine aşina iseniz, anlaşılması çok kolaydır SQLite database.

SQLite nedir?

SQLite, bağımsız, sunucusuz, sıfır konfigürasyonlu, işlemsel SQL veritabanı motorunu uygulayan bir yazılım kitaplığıdır.

Önemli özellikler -

  • SQLite, dünyadaki en yaygın kullanılan veritabanı motorudur.

  • SQLite için kaynak kodu Açık kaynak kodludur.

  • Taşınabilirliği ve az yer kaplaması nedeniyle oyun ve mobil uygulama geliştirme üzerinde büyük bir etkisi oldu.

SQLite'ın Avantajları

Aşağıdakiler SQLite'ın avantajlarıdır -

  • Çok hafif bir veritabanıdır.
  • Platformdan bağımsızdır ve tüm platformlarda çalışır.
  • Küçük bir bellek ayak izine sahiptir.
  • Güvenilirdir.
  • Herhangi bir kurulum ve kuruluma gerek yok.
  • Bağımlılığı yoktur.

Kullanmak SQLite Evrensel Windows Platformu (UWP) uygulamalarınızda aşağıda verilen adımları izlemeniz gerekir.

  • Adıyla yeni bir Evrensel Windows boş uygulaması oluşturun UWPSQLiteDemo.

  • Şuraya git Toolsmenüsüne gidin ve Uzantılar ve Güncellemeler'i seçin. Aşağıdaki iletişim kutusu açılacaktır.

  • Uzantıları ve Güncellemeleri seçtikten sonra, aşağıdaki pencere açılacaktır.
  • Şimdi seçin Online sol bölmeden SQLite seçeneğini arayın.

  • Evrensel Uygulama Platformu için SQLite'ı indirin ve yükleyin.

  • Şimdi tekrar Araçlar menüsüne gidin ve NuGet Package Manager > Package Manager Console menü seçeneği aşağıda gösterildiği gibidir.

  • Paket Yöneticisi Konsoluna aşağıdaki komutu yazın ve bu komutu yürütmek için enter tuşuna basın -

Install-Package SQLite.Net-PCL
  • Şimdi sağ tıklayın References çözüm gezgininde ve seçin Add References.

  • Aşağıdaki iletişim kutusu açılacaktır.
  • Seçiniz Extensions sol bölmeden altında Universal Windows, orta bölmedeki Evrensel Uygulama Platformu için SQLite'ı işaretleyin ve Tamam'ı tıklayın.

  • Artık UWP uygulamalarınızda SQLite kullanmaya hazırsınız.

Aşağıdaki kodu kullanarak bir veritabanı oluşturabilirsiniz.

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

Bir masa oluşturmak için aramanız gerekir CreateTable tablo adı nesnesine sahip yöntem.

conn.CreateTable<Customer>();

Aşağıdaki kodu kullanarak verileri tablonuza ekleyebilirsiniz.

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

Tablodan veri almak için kod aşağıda verilmiştir.

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

Basit bir örnek yardımıyla nasıl veritabanı, tablo oluşturulacağını ve veritabanından verilerin nasıl eklenip alınacağını anlayalım. İsim ve yaş ekleyeceğiz ve ardından aynı verileri tablodan alacağız. Aşağıda, farklı kontrollerin eklendiği XAML kodu verilmiştir.

<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şağıda, olaylar için C # uygulaması verilmiştir ve 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; } 
   } 
	
}

Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki pencereyi göreceksiniz.

Giriş Name ve Age ve tıklayın Add buton.

Şimdi tıklayın Retrievebuton. Aşağıdaki verileriText Block.

Kimlik alanı, Müşteri sınıfında belirtilen bir Birincil Anahtar ve Otomatik Artış alanıdır.

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