Windows10-development-sqlite-database

提供:Dev Guides
移動先:案内検索

Windows 10開発-SQLiteデータベース

多くのアプリケーションには、特定の種類のデータがあり、それらは互いに何らかの関係があります。 ファイルに保存するのが難しいこれらのタイプのデータは、データベースに保存できます。

アプリケーションのSQLサーバーやOracleデータベースなど、データベースの種類に精通している場合は、* SQLiteデータベース*を非常に簡単に理解できます。

SQLiteとは何ですか?

SQLiteは、自己完結型、サーバーレス、ゼロ構成、トランザクションSQLデータベースエンジンを実装するソフトウェアライブラリです。

重要な機能は-

  • SQLiteは、世界で最も広く展開されているデータベースエンジンです。
  • SQLiteのソースコードはオープンソースです。
  • 携帯性とフットプリントが小さいため、ゲームおよびモバイルアプリケーションの開発に大きな影響を与えました。

SQLiteの利点

以下はSQLiteの利点です-

  • これは非常に軽量なデータベースです。
  • プラットフォームに依存せず、すべてのプラットフォームで動作します。
  • メモリフットプリントが小さい。
  • 信頼できます。
  • セットアップやインストールの必要はありません。
  • 依存関係はありません。

ユニバーサルWindowsプラットフォーム(UWP)アプリケーションで SQLite を使用するには、以下の手順に従う必要があります。

  • UWPSQLiteDemo という名前の新しいユニバーサルWindows空アプリを作成します。
  • [ツール]メニューに移動し、[拡張機能と更新プログラム]を選択します。 次のダイアログが開きます。

UWP SQLite Demo

  • 拡張機能と更新プログラムを選択すると、次のウィンドウが開きます。

UWP SQLite拡張および更新

  • ここで、 Online オプションを選択し、左ペインからSQLiteを検索します。
  • Universal App Platform用のSQLiteをダウンロードしてインストールします。
  • 次に、[ツール]メニューに再度移動し、以下に示すように[* NuGetパッケージマネージャー]> [パッケージマネージャーコンソール]メニューオプションを選択します。

UWP SQLite Manage Console

  • パッケージマネージャーコンソールで次のコマンドを記述し、Enterキーを押してこのコマンドを実行します-
Install-Package SQLite.Net-PCL

UWP SQLiteコンソールコマンド

  • ソリューションエクスプローラーで[参照]を右クリックし、[参照の追加]を選択します。

UWP SQLite参照の追加

  • 次のダイアログが開きます。

UWP SQLiteダイアログ

  • 左ウィンドウ枠の[ Universal Windows ]から[ Extensions ]を選択し、中央のウィンドウで[SQLite for Universal App Platform]をオンにして、[OK]をクリックします。
  • これで、UWPアプリケーションでSQLiteを使用する準備が整いました。

次のコードを使用して、データベースを作成できます。

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>

以下に、イベントと* SQLiteデータベース*のC#実装を示します。

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

}

上記のコードをコンパイルして実行すると、次のウィンドウが表示されます。

UWP SQLite実行

  • 名前*と*年齢*を入力し、*追加*ボタンをクリックします。

UWP SQLite追加ボタン

ここで、 Retrieve ボタンをクリックします。 *テキストブロック*に次のデータが表示されます。

UWP SQLite Retrieve

IDフィールドは、Customerクラスで指定される主キーおよび自動インクリメントフィールドです。

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