.NET FrameworkにおけるデータベースアクセスはADO.NETが担当しています。SQLiteの公式サイトにはSQLite用のADO.NETもODBCもありませんので、C++などを使ってラッパークラスをつくるしかないと諦めていましたが、考える事はみんな同じようで、すでにADO.NET Provider for the SQLite(System.Data.SQLiteクラスライブラリ)を作成して公開しているところがありました。
System.Data.SQLiteとは
ADO.NET 2.0/3.5 Provider for SQLite. Supports Full and Compact Framework, Entity Framework, complete with full Visual Studio 2005/2008 design-time support.
- Complete ADO.NET 2.0 Implementation
- Supports the Full and Compact .NET Framework as well as native C/C++
- Mono support
- Support for the ADO.NET 3.5 Entity Framework
- Completely portable database files
- Incredibly fast, faster than most every other embedded database, including Sql Server Mobile
- Encryption Support
- Visual Studio 2005/2008 Design-Time Support
- Single file redistributable under 600kb
- Extensive SQL support
- User-Defined Functions & Collating Sequences
- Full Source Included. 100% Free.
System.Data.SQLiteの入手
- System.Data.SQLiteのサイトのトップページの右側メニューにあるダウンロードページへのリンクをクリックして、ダウンロードページを表示します。
- SQLite for ADO.NET 2.0をクリックします。
- 「SQLite-X.X.XX.X-setup.exe」をダウンロードします。2008/10/14現在であれば、X.X.XX.Xは1.0.60.0つまりVer1.0.60.0が最新となります。
なお、ダウンロードページにはsetupも含め次の4つが提供されているので、ここではsetupを入手しての作業について説明しますが、ダウンロードするファイルは必要に応じて選択してください。
System.Data.SQLiteのセットアップ
Visual StudioからのSystem.Data.SQLiteの利用
セットアップを行ったときに表示された画面からも分かるように、System.Data.SQLiteをインストールするとVisual StudioのIDEでデータソースとしてSQLite Database Fileが選択できるようになります。
サーバーエクスプローラからの利用
それでは、サーバーエクスプローラでデータソースとして、前回の「SQLite3を使ってみた」で作成したtest.dbに対して接続の追加をしてみましょう。
このように既存のファイルの選択できますし、ここで新しいファイルを作成することもできます。
サーバーエクスプローラの接続として登録してしまえば、テーブル定義などもIDEから実施できます。
この図では、上から順番に「Oracle Database 11g Release 1」、「SQL Server 2005 Express Edition」、「SQL Server 2005」、「SQLite」に対して接続定義が行われている状態になります。
テーブルデザイン
System.Data.SQLiteはIDEからテーブルデザイン機能もちゃんとサポートしています。サーバーエクスプローラで接続定義を行い、「新しいテーブルの追加」などを行って定義できます。
データの取得
System.Data.SQLiteはIDEから「データの取得」機能もサポートしています。残念ながら現時点では参照のみのようです。
プロジェクトデータソースからのドラッグ&ドロップ開発
System.Data.SQLiteは、IDEのプロジェクトデータソースとしても登録できます。
プロジェクトデータソースからテーブルをフォーム上にドラッグ&ドロップすれば、自動的にそのテーブルを利用する画面が作成できます。
ドラッグ&ドロップ開発時の注意点
- データ保存用コードは自動出力されません。そのため保存アイコンは使用不可でし生成されます。
- プロジェクト名とフォーム名を同じにするとコンパイルエラーとなるコードが生成されます。ドラッグ&ドロップ後に同一にしたときも同様にエラーが発生するようになります。