C# で SQLite3 を使う

コーディング C#

背景

C# アプリケーションで、軽量SQLデータベースを使いたくて、SQlLite3 を調査していたら、SQLtite3 ってSQLite の公式ページから個別ダウンロード・インストールしないといけないのかわからなくなってきたので、試してみました。

結論

  • SQLite は、Visual studio の「System.Data.SQLite.Core」パッケージを追加しただけで動作する。
  • SQLite の公式ホームページ等から、dll や exe をダウンロードしてインストールする必要なし。(ビルドするとパッケージとして、System.Data.SQLite.dll が追加、組み込まれるため)

仕事で、PostgreSQLや、MySQL/MariaDB とか使っていると、DBって別のプロセスで常駐しているものを使うっていう先入観にしばられるんだなぁ

環境

  • windows 10 Pro (64bit), バージョン1903, OSビルド 18362.778
  • Visual Studio Community 2019 (インストール済み)

やったこと手順

プロジェクトの作成

Visual Studio 2019 を起動して、「新しいプロジェクトの作成(N)」を選択(クリック)

Visual Studio 起動直後の画面

「Windows フォームアプリケーション(.NET Framework)」を選択して、「次へ(N)」ボタンをクリック

プロジェクトテンプレートの選択

“プロジェクト名” と “ソリューション名” に、「002_sqlite」と入力(ここは基本的になんてもよい)

“場所” は、任意の場所(ここでは、「C:\Users\hogehoge\Desktop\develop\_tech\CS\」を指定)

指定したフォルダに指定した “プロジェクト名” のフォルダが作成され、その中に “ソリューションファイル”(.sln)、”プロジェクト名” のプロジェクトフォルダが作成される。

プロジェクトの作成

“フレームワーク” に、「.NET Framework 4.7.2」(現状の最新)を選択
「作成(C)」ボタンをクリック
下記のように、開発画面が表示されます。

起動したプロジェクト画面

System.Data.SQLite.Core パッケージのインストール

「ツール」→「NuGet パッケージ マネージャー(N)」→「ソリューションの NuGet パッケージの管理(N)…」メニューを選択

  1. 開いた “NuGet – ソリューション” タブで、”参照” を選択
  2. “検索” エリアで、「System.Data.SQLite.Core」を入力
  3. 検索結果から「System.Data.SQLite.Core」を選択
  4. 右側のプロジェクトの選択から、ターゲットのプロジェクト(ここでは「002_sqlite」)のチェックボックスにチェックを入れる
  5. 「インストール」ボタンをクリック

“変更のプレビュー” ウィンドが開くので、「OK」ボタンをクリックする

Visual Studio の “ソリューション エクスプローラー” の “参照” に「System.Data.SQLite」が追加されていることを確認

とりあえず、ここでビルド

“ビルド” →「ソリューションのビルド(B)」メニューを選択

ビルドメニュー

プロジェクトフォルダの “bin\Debug” の中身が下記のようになればOK。

ポイントは、”System.Data.SQLite” の “.dll”, “.dll.config”、”.xml” が作成されていればOK

お試しのボタンを配置

Windows フォームでアプリを作ったので、フォーム(ウィンド)にイベントを発生させるためのボタンを配置。
“表示” → 「ツールボックス(X)」メニューを選択

表示された “ツールボックス” から「ボタン」を、フォームの上にドラッグ&ドロップ

コーディング

作成した、「button1」をダブルクリックして 「Form1.cs」を修整
下記のハイライト部分、10行目、23~26行目を追記して、保存

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;

namespace _002_sqlite
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SQLiteConnection con = new SQLiteConnection("Data Source=mydb.sqlite;Version=3;");

            con.Open();
            try
            {
                string sql = "create table products (id int, code varchar(8), name varchar(20), price int)";

                SQLiteCommand com = new SQLiteCommand(sql, con);
                com.ExecuteNonQuery();
            }
            finally
            {
                con.Close();
            }
        }
    }
}

ビルドして、表示された「button1」をクリックしたら、プロジェクトフォルダの “bin\Debug” フォルダ内に、「mydb.sqlite」というデータベースのファイルが生成される。

コメント

タイトルとURLをコピーしました