Help us understand the problem. What is going on with this article?

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

More than 3 years have 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

akabei
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした