Skip to content

Visual Basic.NET SQLiteの利用

Posted in Visual Basic .NET, プログラム関係, and 技術メモ


作成プログラムの種類にもよりますが、クライアントレベルで完結してしまうシステムの場合(例:年賀状ソフト等)はわざわざデータベースサーバーを構築したり、メンテナンスをする必要はないと思います。(やってできないことはないですが)
データをメモリにロードして中でプログラムロジックを駆使して加工したり、住所録等をテキストに書き出したりとまとまったデータの取り扱いにはデータベースがあった方が操作や管理が楽です。
過去はマイクロソフト社製のAccessを利用していろいろとやっていましたが、商用のソフトなために購入費用や度重なるWindowsやOfficeのバージョンアップに伴って過去に作成したものが動かない現象が多々あります。
そんな中、無償のデータベースを利用してプログラムを開発する例が増えてきました。

無償バージョンが存在する代表的なデータベースは
・Oracle Express Edition
・SQL Server Express Edition
・MySQL
・PostgreSQL
・SQLite
・FireBird

など、専門的なものから簡易的なものまでいろいろあり、いい時代になりました。
そんな中で環境構築が必要なく、ファイル単位でやりくりできる「SQLite」に焦点をあててVisualBasic.NETでの使い方について記録しておこうと思います。

事前にSQLiteを利用するための「System.Data.SQLite」をダウンロード
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
↑からご自分の環境にあったものをインストールしてください。

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
 

【いきなり利用の場合のロジック】

 
SELECT文を発行してデータを取得するロジックです。
データベースファイルを指定して無ければエラーで終了します。
改良ポイントはそれぞれの機能をクラス化するのが流用の利便性を高めます。

    Function DataBase_DataGet(ByVal strDBFilePath As String) As Boolean

        DataBase_DataGet = False

        Try
            Dim strDBFilePath As String = "作成したSQLite用のデータベースファイル(*.db)"

            'データベースファイルの存在確認
            If System.IO.File.Exists(strDBFilePath) = False Then
                '存在しない場合はエラーを出力して終了する
                MessageBox.Show(ErrorString001, "エラーが発生しました。", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End
            End If

            Dim Connection As New SQLiteConnection
            Dim Command As SQLiteCommand
            Dim DataReader As SQLiteDataReader
            Dim GetData(LimitCnt) As String

            '接続文字列を設定
            Connection.ConnectionString = "Version=3;Data Source=" & strDBFilePath & ";New=False;Compress=True;"

            'オープン
            Connection.Open()

            'コマンド作成
            Command = Connection.CreateCommand

            'SQL作成
            Command.CommandText = "SQL文(SELECT文)"

            'データリーダーにデータ取得
            DataReader = Command.ExecuteReader

            'データを全件出力
            Do Until Not DataReader.Read
                GetData(0) = DataReader.Item("項目名").ToString
            Loop

            '破棄
            DataReader.Close()
            Command.Dispose()
            Connection.Close()
            Connection.Dispose()

        Catch ex As Exception
            MsgBox(ex.Message)

        End Try

    End Function

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

まだまだ応用や使い道について調べてメモします。次回へ続きます。

Be First to Comment

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    CAPTCHA