【VB.NET】SQLiteのデータベース及びテーブルを動的に作成してみる

2017年12月21日VB.NET,開発

おはようございます。

VB.NETの連投になります。(ちなみに次回も)

今回はSQLiteを使ったプログラムを作っていきます。

プログラムは前回のものを流用しませんが、WPFのものを移植する感じになります。

【WPF】SQLiteを使ってデータを DataGrid に表示してみる

スポンサーリンク

SQLiteのパッケージをインストール

SQLite を利用するためのパッケージをインストールします。

NuGetパッケージ管理

ソリューションエクスプローラーからプロジェクトを選択、右クリックし「Nuget パッケージの管理」を選択します。

パッケージの追加

Nuget パッケージ管理画面が表示されるので、検索窓に「SQLite」を入力し「System.Data.SQLite」を選択、インストールボタンをクリックします。

確認ダイアログ

変更の確認ダイアログが表示されるので、「OK」ボタンをクリックします。

出力ビュー

出力ビューに「終了」が出力されればOKです。

ソリューションエクスプローラー

ソリューションエクスプローラーの「参照」を開くと「System.Data.*」が追加されていることが確認できます。

ビルドを実行する

リビルドの実行

上部メニューの「ビルド」>「ソリューションのリビルド」を選択します。

ファイルが出力される

プロジェクトのディレクトリ>bin>Target>x86 、x64 に「SQLite.Interop.dll」が出力されていることが確認できます。

プログラム修正

ロードイベントの追加

フォームのプロパティ

デザイナー画面を開き、フォームを選択した状態でプロパティウィンドウの「Load」欄をダブルクリックします。

次のようにプログラムが自動生成されます。

Form1.vb

    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        End Sub
    End Class
    

フォームロード時にテーブルを作成する

フォームロード(アプリケーション起動時)に、テーブルを作成するようにプログラムを修正、
先程追加したイベントに次の処理を記述します。

Form1.vb

    Imports System.Data.SQLite
    
    Public Class Form1
    
        ''' <summary>
        ''' フォームロード時の処理
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            Using conn As New SQLiteConnection("Data Source=SampleDb.sqlite")
    
                ' データベースオープン
                conn.Open()
    
                ' テーブルが存在しなければ作成
                Using command = conn.CreateCommand()
                    Dim sb As New System.Text.StringBuilder()
                    sb.Append("CREATE TABLE IF NOT EXISTS MSTKIND (")
                    sb.Append("  KIND_CD NCHAR NOT NULL")
                    sb.Append("  , KIND_NAME NVARCHAR")
                    sb.Append("  , primary key (KIND_CD)")
                    sb.Append(")")
    
                    command.CommandText = sb.ToString()
                    command.ExecuteNonQuery()
    
                    sb.Clear()
                    sb.Append("CREATE TABLE IF NOT EXISTS TBLCAT (")
                    sb.Append("  NO INT NOT NULL")
                    sb.Append("  , NAME NVARCHAR NOT NULL")
                    sb.Append("  , SEX NVARCHAR NOT NULL")
                    sb.Append("  , AGE INT DEFAULT 0 NOT NULL")
                    sb.Append("  , KIND_CD NCHAR DEFAULT 0 NOT NULL")
                    sb.Append("  , FAVORITE NVARCHAR")
                    sb.Append("  , primary key (NO)")
                    sb.Append(")")
    
                    command.CommandText = sb.ToString()
                    command.ExecuteNonQuery()
    
                End Using
    
                ' データベースクローズ
                conn.Close()
    
            End Using
        End Sub
        
    End Class
    

アプリケーションの実行

上部メニューの開始ボタンをクリックし、アプリケーションを実行すると「MSTKIND」、「TBLCAT」テーブルが作成されます。

A5m2で確認

A5m2などを使って確認をしてください。

以上でひとまず完了です。

まとめ

少し長くなったのでここまにして続きは次回にします。

次回はコンボボックス、データグリッドにデータベースから取得したデータを表示したいと思います。

ではでは。

スポンサーリンク


関連するコンテンツ

2017年12月21日VB.NET,開発SQLite,VB.NET,サンプルプログラム

Posted by doradora