今回はSQLiteを使ったプログラムを作っていきます。
プログラムは前回のものを流用しませんが、WPFのものを移植する感じになります。
【WPF】SQLiteを使ってデータを DataGrid に表示してみる
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などを使って確認をしてください。
以上でひとまず完了です。
少し長くなったのでここまにして続きは次回にします。
次回はコンボボックス、データグリッドにデータベースから取得したデータを表示したいと思います。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント