C#で、SQLiteを動かしてみる

何か少し苦労したのでメモ。


なんと.net flameworkでSQLiteが使えるらしい。
SQLiteには本当にお世話になっているので、ありがたい。


しかもNuGetから簡単にインストールできた、のだが。
そのままでは動かないという事象が発生した。


すこしコツ(?)がいるので動かし方手順をメモっておく。


環境
Windows 7 Pro x64
Visual Studio 2010


まずはNuGetからコンポーネントをインストール。

NuGetについて詳しくは
Visual Studio 2010に、NuGetをインストールする
を参照。


下図の通り「sqlite」検索、インストール。

f:id:tatuas:20121127201614j:image

x64x86用をDLした。


ここで問題発生。


SQLiteの動作に必要なDLLファイル

SQLite.Interop.dll

System.Data.SQLite.dll
System.Data.SQLite.Linq.dll

とともにexeと同じディレクトリに入っていなければ動かないらしいが
入ってない!
そのため自分で手作業で入れなければならない。


NuGetでインストールすると、SQLite.Interop.dllは

Projects/アプリケーション名/アプリケーション名/

x64x86という名前の2つのディレクトリ内に存在するので
動かしたいCPUタイプの方のdllファイルをexeファイルと同ディレクトリにコピーする。

f:id:tatuas:20121127201637j:image


最後に、動かすCPUタイプを指定する。
プロジェクトのプロパティを開く。
今回はx86上で動かしたいので

f:id:tatuas:20121127201635j:image

を選択。


ここまでで準備完了。


あとはソースを追加。
今回はフォームアプリプロジェクトなので、ボタンを押したらDBが生成されるコードを作成。

//追加を忘れずに
using System.Data.SQLite;

private void button1_Click(object sender, EventArgs e)
{
  var conn = new SQLiteConnection("Data Source=Test.db");
  conn.Open();
  conn.Close();
}


bin/debug(exeファイルのディレクトリ)にTest.dbができたら成功。


次回からは実用的なDB操作についてやる予定。



SQLite ポケットリファレンス