C#でSQLite3を使ってみたのでまとめてみました。
SQLiteをインストール
SQLiteをコマンドから使用するためのコマンドラインツールのダウンロードとインストールを行います。
先にデータベースやテーブルを作成しておく場合はインストールしてください。
まずはじめに公式ページにアクセスします。
ページが表示されたら、画面上部の「Download」をクリックし、ダウンロードページに移動します。

今回はWindows10(64bit)の環境で利用しますので、ダウンロードページが表示されたら「Precompiled Binaries for Windows」まで移動し、「sqlite-tools」をダウンロードします。

ダウンロードしたファイルを任意のフォルダに解凍すればインストールは完了です。
※コマンドラインツールなので、必要であればパスを通してください。
コマンドラインツールでデータベース作成
コマンドプロンプトを起動し、先ほどインストールしたコマンドラインツールを使用してデータベースを作成します。
※「データベース名=ファイル名」となります。どのような拡張子でもよさそうですが、.dbや.sqlite3などをつけておくとわかりやすいと思います。
|
1 |
> sqlite3 データベース名 |
データベース名を指定してコマンドラインツールを実行すると、データベースが存在する場合は指定した名前のデータベースに接続し、指定した名前のデータベースが存在しない場合には新規にデータベースを作成した上で接続します。
コマンドラインツールでテーブル作成
次にテーブルを作成してみます。(データベースに接続されている場合は、プロンプトに「sqlite>」という表示となっています。)
CREATE TABLEでテーブルが作成されますので、次のように実行してください。
|
1 |
CREATE TABLE テーブル名(カラム1, カラム2, ...); |
最後に「;(セミコロン)」が無いとSQL文が発行されないようです。
入力忘れた場合は次の行で;(セミコロン)とEnterを入力してください。
以上でテーブルまで作成されました。
終了する場合は、「.exit」コマンドを入力してください。
|
1 |
sqlite> .exit |
テーブルまで作成すると、データベース名のファイルが作成されていると思います。
C#によるデータベースアクセス
つぎに、C#によるデータアクセスのためのデータベースを準備します。
コマンドラインツールで以下コマンドを実行しデータベースファイルを作成します。
|
1 2 3 4 |
>sqlite3 sample.sqlite3 SQLite version x.xx.x xxxx-xx-xx xx:xx:xx Enter ".help" for usage hints. |
|
1 |
CREATE TABLE t_sample(id, data); |
そのままデータもINSERTで追加して接続を終了します。
|
1 2 3 |
INSERT INTO t_sample (id, data) VALUES (1, 'data01'); INSERT INTO t_sample (id, data) VALUES (2, 'data02'); INSERT INTO t_sample (id, data) VALUES (3, 'data03'); |
|
1 |
sqlite> .exit |
パッケージのインストール
C#でSQLiteを操作するためにパッケージをインストールします。
導入するソリューションを作成するか、既存のソリューションを開いてください。
VisualStudioが立ち上がったら
を選択し管理画面を開きます。
検索窓へ「SQLite」を入力し、参照タブへ移動します。
すると多数の検索結果が表示されますが、今回は必要最低限の機能のみ使用しますので、
をインストールしてください。
プログラムでデータ抽出
パッケージのインストールが完了したら、実際にデータを取得してみます。
以下のコードを実行すると、作成したデータベースファイルへ接続し、データが抽出されます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//データベースのファイルパスを指定 var constr =new SQLiteConnectionStringBuilder {DataSource = "sample.sqlite3" }; using (var cn = new SQLiteConnection(constr.ToString())) { //データベースへ接続 cn.Open(); cmd = new SQLiteCommand(cn)) { //データ抽出 cmd.CommandText = $"SELECT * FROM t_sample"; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { Console.WriteLine(reader.GetValues().Get("data")); } } } } |
|
1 2 3 4 |
//実行結果 //data01 //data02 //data03 |
最後に
データベースの作成~コーディングの実装まで比較的簡単に行えました。
まだまだ使っていない機能もたくさんありますので、今後も勉強しながら使っていこうと思います。
