.NET
sqlite
VisualStudio
VisualStudio2017

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

More than 1 year has passed since last update.

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)

aaa.png


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

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

bbb.png

次のように表示されたら左上の「参照」を選択して検索エリアに「sqlite」と入力します。

一番上に「System.Date.SQLite」が表示されたら選択してインストールボタンを押します。

ccc.png

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

ddd.png

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


フォームデザイン

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

eee.png

データベース作成ボタンを押すとデータベース(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テーブルの検索結果が表示されます。

fff.png