Visual Studio 2017でSQLiteを使ったWindowsフォームアプリ開発


Visual Studio 2017でSQLiteを使ったWindowsフォームアプリを開発してみました。
まだサーバーエクスプローラーやTableAdaptorを使ったGUIでの開発には対応していないようです。
今回はDataAdapterを使った開発方法になります。

環境

Windows 7 Professional SP1 64bit
Visual Studio 2017 Community
※事前にSQLiteのインストールはしていません。

プロジェクト作成

新しいプロジェクトから「Visual Basic」、「Windowsクラシックデスクトップ」の「Windowsフォームアプリケーション」を選択します。(.NET Framework 4.6.1)

System.Date.SQLiteパッケージインストール

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

次のように表示されたら左上の「参照」を選択して検索エリアに「sqlite」と入力します。
一番上に「System.Date.SQLite」が表示されたら選択してインストールボタンを押します。

ダイアログが表示されたらOKボタンを押します。

System.Date.SQLiteがインストールされます。

フォームデザイン

フォームにボタン2つとデータグリッド(DataGridView)を配置します。

データベース作成ボタンを押すとデータベース(sample.dbファイル)が作成され、Sampleテーブルが作成されるようにします。
検索ボタンを押すとSampleテーブルを検索して結果をデータグリッドに表示します。

ソースコード

データベースを作成してSampleテーブルを検索するプログラムを作成します。

Form1.vb
Imports System.Data.SQLite

Public Class Form1

    ''' <summary>
    ''' データベース作成ボタンクリック
    ''' </summary>
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Using con As New SQLiteConnection("Data Source=sample.db")
                con.Open()
                Using cmd As SQLiteCommand = con.CreateCommand()
                    cmd.CommandText = "CREATE TABLE Sample (ID INTEGER PRIMARY KEY, Name NVARCHAR(128), Age INTEGER)"
                    cmd.ExecuteNonQuery()
                    cmd.CommandText = "INSERT INTO Sample (Name, Age) VALUES('一郎', 10)"
                    cmd.ExecuteNonQuery()
                    cmd.CommandText = "INSERT INTO Sample (Name, Age) VALUES('二郎', 20)"
                    cmd.ExecuteNonQuery()
                    cmd.CommandText = "INSERT INTO Sample (Name, Age) VALUES('三郎', 30)"
                    cmd.ExecuteNonQuery()
                End Using
            End Using
            MessageBox.Show("Sampleデータベース作成成功", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MessageBox.Show("Sampleデータベース作成失敗" + Environment.NewLine + ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    ''' <summary>
    ''' 検索ボタンクリック
    ''' </summary>
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Using con As New SQLiteConnection("Data Source=sample.db")
            Dim ds As New DataSet
            Dim da As New SQLiteDataAdapter("SELECT * FROM Sample", con)
            da.Fill(ds, "Sample")
            Me.DataGridView1.DataSource = ds.Tables("Sample")
        End Using
    End Sub
End Class

アプリケーション実行

アプリケーションを実行してデータベース作成ボタンを押してから検索ボタンを押すとSampleテーブルの検索結果が表示されます。