Desenvolvimento do Windows 10 - Banco de dados SQLite
Em muitos aplicativos, existem certos tipos de dados, que têm algum tipo de relação entre si. Esses tipos de dados, que são difíceis de armazenar em um arquivo, podem ser armazenados em um banco de dados.
Se você está familiarizado com os tipos de bancos de dados, como SQL server ou Oracle bancos de dados em qualquer aplicativo, é muito fácil de entender SQLite database.
O que é SQLite?
SQLite é uma biblioteca de software que implementa um mecanismo de banco de dados SQL transacional independente, sem servidor e com configuração zero.
Recursos importantes são -
SQLite é o mecanismo de banco de dados mais amplamente implantado no mundo.
O código-fonte do SQLite é Open source.
Ele teve um grande impacto no desenvolvimento de jogos e aplicativos móveis, devido à sua portabilidade e tamanho reduzido.
Vantagens do SQLite
A seguir estão as vantagens do SQLite -
- É um banco de dados muito leve.
- É independente de plataforma e funciona em todas as plataformas.
- Ele ocupa uma pequena área de memória.
- É confiável.
- Não há necessidade de qualquer configuração e instalação.
- Não tem dependências.
Usar SQLite em seus aplicativos da Plataforma Universal do Windows (UWP), você precisa seguir as etapas fornecidas abaixo.
Crie um novo aplicativo universal em branco do Windows com o nome UWPSQLiteDemo.
Vou ao Toolsmenu e selecione Extensões e atualizações. A seguinte caixa de diálogo será aberta.
- Depois de selecionar Extensões e Atualizações, a seguinte janela será aberta.
Agora selecione o Online opção e procure por SQLite, no painel esquerdo.
Baixe e instale o SQLite para a plataforma de aplicativos universal.
Agora, vá ao menu Ferramentas novamente e selecione NuGet Package Manager > Package Manager Console opção de menu como mostrado abaixo.
Escreva o seguinte comando no console do gerenciador de pacotes e pressione enter para executar este comando -
Install-Package SQLite.Net-PCL
Agora clique com o botão direito em References no explorador de soluções e selecione Add References.
- A seguinte caixa de diálogo será aberta.
Selecione Extensions do painel esquerdo em Universal Windows, marque SQLite para Universal App Platform no painel do meio e clique em OK.
Agora você está pronto para usar o SQLite em seus aplicativos UWP.
Você pode criar um banco de dados usando o código a seguir.
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);
Para criar uma mesa, você precisa chamar CreateTable método com objeto de nome de tabela.
conn.CreateTable<Customer>();
Você pode inserir os dados em sua tabela usando o código a seguir.
conn.Insert(new Customer(){
Name = textBox.Text,
Age = textBox1.Text
});
A seguir está o código para recuperar dados da tabela.
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;
}
Vamos entender como criar um banco de dados, uma tabela e como inserir e recuperar os dados do banco de dados com a ajuda de um exemplo simples. Estaremos adicionando Nome e idade e, em seguida, recuperaremos os mesmos dados da tabela. A seguir está o código XAML no qual diferentes controles são adicionados.
<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 seguir está a implementação C # para eventos e 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; }
}
}
Quando o código acima for compilado e executado, você verá a seguinte janela.
Introduzir o Name e Age e clique no Add botão.
Agora clique no Retrievebotão. Você verá os seguintes dados noText Block.
O campo ID é um campo de chave primária e incremento automático, que é especificado na classe Cliente.
[PrimaryKey, AutoIncrement]
public int Id { get; set; }