UWP で SQLite3 を使う

この記事は公開されてから時間が経っています

前の記事に続いて、VS 2015 で UWP を C# で書くときの SQLite3 の使い方を忘れないように書いておこう!と言う試み

 

SQLite は、配布元で、Universal Windows Platform の .vsix というファイルを入手する事が出来ます
で、この sqlite-uwp-3130000.vsix(起草時) をエクスプローラーでダブルクリックすると VSIX インストーラというのが実行されます
そのまま実行すれば VS2015 にインストールされます
バージョンが新しくなった場合も同様に実行すれば良いようです

無題

で、参照マネージャーでこの SQLite for …. と、その下の Visual C++ 2015 …..にチェックを付けて OK します
続いて、NuGet パッケージ管理から、SQLite.Net-PCL と言うのを探してインストールします
 無題2

依存関係の有るファイルを追加して良いか確認してきますので、同意して進みます

無題3
インストールが終わると、こういう風に変化しますので、更新などの管理はココで出来る様です


using SQLite.Net.Attributes;

namespace XXXXXXXX
{
        …
        internal class dbTest
        {
            [PrimaryKey, AutoIncrement]
            public int ID { get; set; }

            public string name { get; set; }
            public string time_stamp { get; set; }
        }
        …
        public SQLite.Net.SQLiteConnection SQLite1;
        public String dbpath = null;
        …

        public MainPage()
        {
        …
            dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "test.sqlite");

            using (SQLite1 = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), dbpath))
            {

                SQLite1.CreateTable<dbTest>();
                SQLite1.Execute("CREATE TABLE IF NOT EXISTS dbLog (id INTEGER PRIMARY KEY AUTOINCREMENT,"+
                    "time_stamp DATETIME NOT NULL DEFAULT (DATETIME('now','localtime')),status TEXT);");

                dbTest rec = new dbTest { name = _XXXXXX.name, time_stamp = "empty" };
                SQLite1.Insert(rec);

                SQLite1.Execute("insert into dbLog (status) values ('now START');");
            }

一杯、端折ってるけどこんな感じ

dbpath って言うのは、任意のパスを指定するのがすごく難しくて、決められた位置に置いて我慢するのが良いみたいです
(UWP で Windows のドキュメントフォルダーなどにファイルを任意の時点で読み書きしようとすると膨大な手間がかかるかかるようです)

でデータベースの在処は、結構遠いです
無題4
Packages と LocalState の間は、プロジェクトのプロパティーからパッケージマニュフェストを開いてアプリケーションのパッケージ名になるので確認しておかないと判りません

次に、テーブルの作り方とデータのインサートの方法を二種

最初の方が一般的なのか判りませんけど、個人的に判りにくいです
dbTest の方は、対応するクラスを用意してデータを準備します
ココでは一行ですけど、大量に有る場合は List<> とすると良いようです

dbLog の方は、SQL を書いて Execute しています

.問い合わせなどはまた今度..

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。