LoginSignup
19

More than 5 years have passed since last update.

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

Posted at

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19