การพัฒนา Windows 10 - ฐานข้อมูล SQLite
ในหลาย ๆ แอปพลิเคชันมีข้อมูลบางประเภทซึ่งมีความสัมพันธ์ซึ่งกันและกัน ข้อมูลประเภทนี้ซึ่งจัดเก็บในไฟล์ได้ยากสามารถจัดเก็บไว้ในฐานข้อมูลได้
หากคุณคุ้นเคยกับประเภทของฐานข้อมูลเช่นเซิร์ฟเวอร์ SQL หรือฐานข้อมูล Oracle ในแอปพลิเคชันใด ๆ ก็จะเข้าใจได้ง่ายมาก SQLite database.
SQLite คืออะไร?
SQLite เป็นไลบรารีซอฟต์แวร์ที่ใช้ในตัวเซิร์ฟเวอร์น้อยลงการกำหนดค่าเป็นศูนย์เอ็นจินฐานข้อมูล SQL แบบทรานแซคชัน
คุณสมบัติที่สำคัญคือ -
SQLite เป็นเอ็นจินฐานข้อมูลที่มีการปรับใช้อย่างแพร่หลายที่สุดในโลก
ซอร์สโค้ดสำหรับ SQLite คือโอเพ่นซอร์ส
มีผลกระทบอย่างมากต่อการพัฒนาเกมและแอปพลิเคชันมือถือเนื่องจากพกพาได้และมีพื้นที่น้อย
ข้อดีของ SQLite
ต่อไปนี้เป็นข้อดีของ SQLite -
- เป็นฐานข้อมูลที่มีน้ำหนักเบามาก
- เป็นแพลตฟอร์มที่เป็นอิสระและใช้งานได้กับทุกแพลตฟอร์ม
- มีรอยความทรงจำขนาดเล็ก
- มีความน่าเชื่อถือ
- ไม่จำเป็นต้องตั้งค่าและติดตั้งใด ๆ
- ไม่มีการอ้างอิง
ใช้ SQLite ในแอปพลิเคชัน Universal Windows Platform (UWP) ของคุณคุณต้องทำตามขั้นตอนด้านล่างนี้
สร้างแอปเปล่า Universal Windows ใหม่ที่มีชื่อ UWPSQLiteDemo.
ไปที่ไฟล์ Toolsเมนูแล้วเลือก Extensions and Updates กล่องโต้ตอบต่อไปนี้จะเปิดขึ้น
- หลังจากเลือก Extensions and Updates หน้าต่างต่อไปนี้จะเปิดขึ้น
ตอนนี้เลือก Online ตัวเลือกและค้นหา SQLite จากบานหน้าต่างด้านซ้าย
ดาวน์โหลดและติดตั้ง SQLite สำหรับ Universal App Platform
ตอนนี้ไปที่เมนูเครื่องมืออีกครั้งแล้วเลือก NuGet Package Manager > Package Manager Console ตัวเลือกเมนูดังที่แสดงด้านล่าง
เขียนคำสั่งต่อไปนี้ใน Package Manager Console และกด Enter เพื่อดำเนินการคำสั่งนี้ -
Install-Package SQLite.Net-PCL
ตอนนี้คลิกขวาที่ References ในตัวสำรวจโซลูชันและเลือก Add References.
- กล่องโต้ตอบต่อไปนี้จะเปิดขึ้น
เลือก Extensions จากบานหน้าต่างด้านซ้ายภายใต้ Universal Windowsตรวจสอบ SQLite สำหรับ Universal App Platform ในบานหน้าต่างตรงกลางแล้วคลิกตกลง
ตอนนี้คุณพร้อมที่จะใช้งาน SQLite ในแอปพลิเคชัน UWP ของคุณแล้ว
คุณสามารถสร้างฐานข้อมูลโดยใช้รหัสต่อไปนี้
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);
ในการสร้างตารางคุณต้องโทร CreateTable วิธีการกับวัตถุชื่อตาราง
conn.CreateTable<Customer>();
คุณสามารถแทรกข้อมูลลงในตารางของคุณโดยใช้รหัสต่อไปนี้
conn.Insert(new Customer(){
Name = textBox.Text,
Age = textBox1.Text
});
ด้านล่างนี้คือรหัสสำหรับดึงข้อมูลจากตาราง
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;
}
ให้เราเข้าใจวิธีการสร้างฐานข้อมูลตารางและวิธีการแทรกและดึงข้อมูลจากฐานข้อมูลด้วยความช่วยเหลือของตัวอย่างง่ายๆ เราจะเพิ่มชื่อและอายุจากนั้นเราจะดึงข้อมูลเดียวกันจากตาราง ด้านล่างนี้คือรหัส XAML ซึ่งมีการเพิ่มการควบคุมที่แตกต่างกัน
<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>
ด้านล่างนี้คือการใช้งาน C # สำหรับเหตุการณ์และ 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; }
}
}
เมื่อโค้ดด้านบนถูกคอมไพล์และรันคุณจะเห็นหน้าต่างต่อไปนี้
ป้อนไฟล์ Name และ Age แล้วคลิกไฟล์ Add ปุ่ม.
ตอนนี้คลิกที่ไฟล์ Retrieveปุ่ม. คุณจะเห็นข้อมูลต่อไปนี้ในไฟล์Text Block.
ฟิลด์ ID คือฟิลด์คีย์หลักและฟิลด์เพิ่มอัตโนมัติซึ่งระบุไว้ในคลาสลูกค้า
[PrimaryKey, AutoIncrement]
public int Id { get; set; }