Phát triển Windows 10 - Cơ sở dữ liệu SQLite
Trong nhiều ứng dụng, có một số loại dữ liệu nhất định, chúng có mối quan hệ với nhau. Những loại dữ liệu khó lưu trữ thành tập tin này có thể được lưu trữ trong cơ sở dữ liệu.
Nếu bạn đã quen thuộc với các loại cơ sở dữ liệu, chẳng hạn như máy chủ SQL hoặc cơ sở dữ liệu Oracle trong bất kỳ ứng dụng nào, thì rất dễ hiểu SQLite database.
SQLite là gì?
SQLite là một thư viện phần mềm triển khai một công cụ cơ sở dữ liệu SQL giao dịch khép kín, ít máy chủ hơn, không cấu hình.
Các tính năng quan trọng là -
SQLite là công cụ cơ sở dữ liệu được triển khai rộng rãi nhất trên thế giới.
Mã nguồn cho SQLite là mã nguồn mở.
Nó đã có tác động lớn đến việc phát triển trò chơi và ứng dụng di động, do tính di động và dấu ấn nhỏ.
Ưu điểm của SQLite
Sau đây là những ưu điểm của SQLite:
- Nó là một cơ sở dữ liệu rất nhẹ.
- Nó độc lập với nền tảng và hoạt động trên tất cả các nền tảng.
- Nó có một dấu chân bộ nhớ nhỏ.
- Nó là đáng tin cậy.
- Không cần thiết lập và cài đặt.
- Nó không có phụ thuộc.
Để sử dụng SQLite trong các ứng dụng Nền tảng Windows chung (UWP), bạn cần làm theo các bước được cung cấp bên dưới.
Tạo một ứng dụng trống Universal Windows mới với tên UWPSQLiteDemo.
Đi đến Toolsvà chọn Tiện ích mở rộng và Cập nhật. Hộp thoại sau sẽ mở ra.
- Sau khi chọn Tiện ích mở rộng và Cập nhật, cửa sổ sau sẽ mở ra.
Bây giờ hãy chọn Online và tìm kiếm SQLite, từ ngăn bên trái.
Tải xuống và cài đặt SQLite cho Nền tảng ứng dụng toàn cầu.
Bây giờ, hãy chuyển đến menu Công cụ một lần nữa và chọn NuGet Package Manager > Package Manager Console tùy chọn menu như hình dưới đây.
Viết lệnh sau trong Bảng điều khiển Trình quản lý Gói và nhấn enter để thực hiện lệnh này:
Install-Package SQLite.Net-PCL
Bây giờ nhấp chuột phải vào References trong trình khám phá giải pháp và chọn Add References.
- Hộp thoại sau sẽ mở ra.
Lựa chọn Extensions từ ngăn bên trái dưới Universal Windows, hãy kiểm tra SQLite cho Nền tảng ứng dụng toàn cầu trong ngăn giữa và nhấp vào Ok.
Bây giờ bạn đã sẵn sàng sử dụng SQLite trong các ứng dụng UWP của mình.
Bạn có thể tạo cơ sở dữ liệu bằng cách sử dụng mã sau.
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);
Để tạo một bảng, bạn cần gọi CreateTable phương thức với đối tượng tên bảng.
conn.CreateTable<Customer>();
Bạn có thể chèn dữ liệu vào bảng của mình bằng cách sử dụng mã sau.
conn.Insert(new Customer(){
Name = textBox.Text,
Age = textBox1.Text
});
Dưới đây là mã để lấy dữ liệu từ bảng.
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;
}
Hãy để chúng tôi hiểu cách tạo cơ sở dữ liệu, bảng và cách chèn và truy xuất dữ liệu từ cơ sở dữ liệu với sự trợ giúp của một ví dụ đơn giản. Chúng tôi sẽ thêm Tên và tuổi và sau đó chúng tôi sẽ lấy cùng một dữ liệu từ bảng. Dưới đây là mã XAML trong đó các điều khiển khác nhau được thêm vào.
<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>
Dưới đây là triển khai C # cho các sự kiện và 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; }
}
}
Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy cửa sổ sau.
Nhập Name và Age và nhấp vào Add cái nút.
Bây giờ hãy nhấp vào Retrievecái nút. Bạn sẽ thấy dữ liệu sau trênText Block.
Trường ID là trường Khóa chính và trường Tự động tăng, được chỉ định trong lớp Khách hàng.
[PrimaryKey, AutoIncrement]
public int Id { get; set; }