Разработка для Windows 10 - База данных SQLite
Во многих приложениях есть определенные типы данных, которые имеют определенную связь друг с другом. Эти типы данных, которые трудно сохранить в файле, можно хранить в базе данных.
Если вы знакомы с типами баз данных, такими как SQL-сервер или базы данных Oracle в любом приложении, то это очень легко понять. SQLite database.
Что такое SQLite?
SQLite - это программная библиотека, которая реализует автономный, бессерверный, без конфигурации, транзакционный механизм базы данных SQL.
Важные особенности -
SQLite - это самый широко распространенный механизм баз данных в мире.
Исходный код SQLite - с открытым исходным кодом.
Он оказал большое влияние на разработку игр и мобильных приложений из-за своей портативности и компактности.
Преимущества SQLite
Ниже приведены преимущества SQLite:
- Это очень легкая база данных.
- Он не зависит от платформы и работает на всех платформах.
- У него небольшой объем памяти.
- Это надежно.
- Нет необходимости в настройке и установке.
- Никаких зависимостей.
Использовать SQLite в приложениях универсальной платформы Windows (UWP) вам необходимо выполнить действия, указанные ниже.
Создайте новое универсальное пустое приложение для Windows с именем UWPSQLiteDemo.
Перейти к Toolsменю и выберите Расширения и обновления. Откроется следующий диалог.
- После выбора расширений и обновлений откроется следующее окно.
Теперь выберите Online вариант и найдите SQLite на левой панели.
Загрузите и установите SQLite для универсальной платформы приложений.
Теперь снова перейдите в меню Инструменты и выберите NuGet Package Manager > Package Manager Console пункт меню, как показано ниже.
Напишите следующую команду в консоли диспетчера пакетов и нажмите ввод, чтобы выполнить эту команду:
Install-Package SQLite.Net-PCL
Теперь щелкните правой кнопкой мыши на References в обозревателе решений и выберите Add References.
- Откроется следующий диалог.
Выбрать Extensions из левой панели под Universal Windows, отметьте SQLite для универсальной платформы приложений на средней панели и нажмите ОК.
Теперь вы готовы к использованию 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 - это поле первичного ключа и автоматического увеличения, которое указывается в классе Customer.
[PrimaryKey, AutoIncrement]
public int Id { get; set; }