BETA

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

投稿日:2019-09-25
最終更新:2019-09-25
※この記事は外部サイト(https://www.doraxdora.com/blog/2017/12/21/...)からのクロス投稿です

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

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

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

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

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

ソリューションエクスプローラーからプロジェクトを選択、右クリックし「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などを使って確認をしてください。

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

まとめ

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

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

ではでは。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@doraxdoraの技術ブログ 主に Java, C#, Python, Javascript の記事を載せていく予定。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!