VB.NETから組み込みデータベースのSQLiteを操作する方法
VB.NETからSQLiteを操作する方法をご紹介します。
SQLiteとは、SQL ServerやMySQL、PostgreSQLと同じデータベース管理システムですが、それらとは異なり、サーバー上で動作するのではなく、アプリケーションに組み込んで利用するデータベースです。有名なところでは、FirefoxでSQLiteが採用されています。一般的なデータベースとは異なり、大規模なシステムには不向きですが、中小規模では、速度面においては他のデータベースと遜色ありません。
特徴としては、とても軽量であることと、データの保存を単一ファイルで行うことが挙げられます。
SQLiteについて詳しく知りたい場合は、Wikipediaを参照してください。
今回は、SQLiteの操作にSystem.Data.SQLiteというライブラリを使用します。
System.Data.SQLiteの特徴
- 完全なADO.NET 2.0の実装
- Monoサポート
Monoとは、.NET Frameworkの互換環境を提供する為のオープンソースソフトウェアです。 - ADO.NET 3.5 Entity Frameworkの実装
- Visual Studio 2005/2008 Design-Timeをサポート
サーバーエクスプローラーに、SQLiteの接続を追加することが出来ます。 - 暗号化のサポート
- 900kb以下の再頒布可能な単体ファイル
- 完全フリー
ライセンスはパブリックドメインとなっており、個人、商用問わず自由に使うことが出来ます。
ライブラリのダウンロード先はここです。
この記事を書いた時点でのSystem.Data.SQLiteのバージョンは “1.0.66.0″ で、SQLiteのバージョンは “3.6.23.1″ です。
今回は、セットアップファイルではなく、バイナリのZIPファイルをダウンロードします。
Newest Filesの項目に、SQLite-x.x.xx.x-binaries.zipというリンクがあるので、そこをクリックし、ダウンロードします。
ただし、上記にある、Visual StudioのDesign-Timeを使用したい場合には、インストーラーでインストールする必要があります。
ZIPファイルをダウンロードしたら、解凍ソフトを使って解凍してください。
使用するのは、System.Data.SQLite.DLL(ライブラリ本体) とSystem.Data.SQLite.XML(インテリセンス用の定義ファイル)の二つです。この二つのファイルは、解凍したフォルダの中にあるbinフォルダの下にあります。System.Data.SQLite.XMLファイルに関しては、無くても動作します。
このライブラリの名前空間は、System.Data.SQLiteと分かりやすくなっています。ただ、個人的にSystemの名前空間は、.NET標準の名前空間という気がするのでちょっと違和感があります。
Visual Studio 2005のプロジェクトを作成
画面左にある、作成のプロジェクトをクリックします。
以下の画面が表示されるので、Windows アプリケーションを選択します。
今回は、名前は初期値のままで進めますが、必要があれば、名前も変更してください。
System.Data.SQLiteの参照設定
メニューバーのプロジェクト→参照の追加をクリックします。
以下の画面が表示されるので、参照タブをクリックします。
System.Data.SQLite.DLLを選択し、OKボタンをクリックします。
System.Data.SQLiteの接続文字列
接続文字列の引数については、別途記事を書いたので、そちらを参照してください。
System.Data.SQLiteの接続文字列で使用できる引数の説明
サンプルソース
接続文字列のData Sourceにデータベースファイルへのパスを指定してください。
以下、サンプルソースです。ソースのライセンスはGPLとします。
Imports System.Data.SQLite
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Connection As New SQLiteConnection
Dim Command As SQLiteCommand
Dim DataReader As SQLiteDataReader
'接続文字列を設定
Connection.ConnectionString = "Version=3;Data Source=test.db;New=False;Compress=True;"
''パスワードをセット
'Connection.SetPassword("password")
'オープン
Connection.Open()
''パスワードを変更
'Connection.ChangePassword("password")
'コマンド作成
Command = Connection.CreateCommand
'SQL作成
Command.CommandText = "SELECT * FROM hoge"
'データリーダーにデータ取得
DataReader = Command.ExecuteReader
'データを全件出力
Do Until Not DataReader.Read
Debug.Print(DataReader.Item("field01").ToString)
Debug.Print(DataReader.Item("field02").ToString)
Debug.Print(DataReader.Item("field03").ToString)
Debug.Print(DataReader.Item("field04").ToString)
Debug.Print(DataReader.Item("field05").ToString)
Loop
'破棄
DataReader.Close()
Command.Dispose()
Connection.Close()
Connection.Dispose()
End Sub
End Class
パスワードが設定されているデータベースの場合は、以下のコードをOpenメソッドの前に挿入します。上記のコードではコメントアウトしてあります。
Connection.SetPassword("password")
データベースのパスワードを変更する場合には、以下のコードをOpenメソッドより後に挿入します。上記のコードではコメントアウトしてあります。
Connection.ChangePassword("password")
独自関数の追加
独自関数の追加につていは、別途記事を書いたので、そちらを参照してください。
System.Data.SQLiteで独自関数を追加して利用するVB.NETのサンプル
PupSQLite
SQLiteのデータベースファイルの中身を見たい場合には、PupSQLiteというツールがオススメです。
他にも似たようなツールはたくさんあるのですが、PupSQLiteは、Microsoft Access 2000/2003ライクなユーザーインターフェイスで、他のツールよりもかなり使いやすくなっています。
このツールは、暗号化にも対応しているので、暗号化されたデータベースファイルを見る場合にも使用することが出来ます。
ちなみに、上記サンプルで使用したデータベースを作った時の手順です。
PupSQLiteの起動
公式サイトよりダウンロードし、解凍したファイルの中にあるPupSQLite.exeを実行します。
テーブルの作成
メニューバーのファイル→新規作成をクリックします。
クリックすると、以下の画面が表示されるので、「hoge」と入力します。
テーブル定義を作成する画面が表示されるので、作成するテーブルの定義を入力します。
データベースファイルの保存
定義画面でOKボタンを押すとデータベースの保存ダイアログが表示されるので、任意の場所に保存します。
データの登録
データベースファイルを作成すると以下のような画面が表示されます。
hogeをダブルクリックして、テーブルにデータを登録します。
入力画面の×ボタンをクリックすると、以下のメッセージが表示されるのではいをクリックします。
関連するエントリー
- .NETでデータベース操作に利用できるデータプロバイダまとめ – ODBC、MySQL、PostgreSQL、SQLite、DB2、Firebird
- System.Data.SQLiteで独自関数を追加して利用するVB.NETのサンプル
- VB.NETで複数のデータベースを切り替えて使うサンプルプログラム
- ファイルメーカー、iOS向けデータベースアクセスアプリ「FileMaker Go」が公開から1週間で10万ダウンロードを達成したと発表
- VB.NETでデータベースのMySQLに接続する方法
- バッテリー寿命改善やiPodのバグが修正された「iOS 4.3.3」がもうすぐ公開
- System.Data.SQLiteの接続文字列で使用できる引数の説明
- Windowsで人気のクリーンアップソフト「CCleaner」にMacベータ版が登場
- フェンリル、ローマ字で日本語検索ができる「migemo」に対応した「FenrirFS 2.4.5 ベータ版」をリリース
- 画像やファイルを一括ダウンロードできるFirefoxの拡張「DownThemAll!」
















コメントはありません。