■■■VB.NetでSQLite パラメータとトランザクション■■■

パラメータとトランザクションを使ってみます。
設定は前回と同じとします
まずはソース

------------------------------------------------------------------------


Imports System.Data.SQLite
Public Class Form1
    Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
        '接続文字列を設定
        Dim Cn As New SQLiteConnection
        Dim Cmd As SQLiteCommand
        Dim Tn As SQLiteTransaction

        Connection.ConnectionString = "Version=3;Data Source=D:\SQLite\test.db;New=False;Compress=True;"

        ''パスワードをセット
        'Cn.SetPassword("password")

        'オープン
        Cn.Open()

        'トランザクション開始
        Tn = Cn.BeginTransaction

        ''パスワードを変更
        'Cn.ChangePassword("password")

        'コマンド作成
        Cmd = Cn.CreateCommand

        'SQL作成
        Cmd.CommandText = "INSERT INTO testtable ( id , data1 , data2) VALUES( :id , :data1 , :data2 ) ;"
        Cmd.Parameters.Add("id", System.Data.DbType.Int32)
        Cmd.Parameters.Add("data1", System.Data.DbType.String)
        Cmd.Parameters.Add("data2", System.Data.DbType.String)

        Cmd.Parameters.Item("id").Value = 6
        Cmd.Parameters.Item("data1").Value = "データ3"
        Cmd.Parameters.Item("data2").Value = "データ4"
        Dim i10 As Long = Cmd.ExecuteNonQuery

        MessageBox.Show(i10.ToString)

        Tn.Rollback() 'ロールバック
        'Tn.Commit() 'コミット

        '破棄
        Cmd.Dispose()
        Cn.Close()
        Cn.Dispose()
    End Sub
End Class


------------------------------------------------------------------------
これも他のDBを扱うプログラムとほとんど同じです。
トランザクションは開始、ロールバックとコミット
パラメータは上記ソースでは先頭に : (コロン) を使っていますが良く見るのは @ です。
@でも動くのですが、PostgrSQLで作っている時は : なのでこのようにしています。

SELECTによるデータ取得、トランザクションを使ったSQLの発行が出来れば
簡単なDBアプリは作れそうです。

他のちょっとしたポイント

●新規DBを作りたい時
接続文字で新しいファイルを指定する。
テーブルを作成する。(CREATE)
すると新しくDBファイルが作成される


●DBファイルのメンテナンス
登録と削除を繰り返すとファイルが肥大していきます。
メンテナンスをするには以下のsqlを実行します。
vacuum;
UPDATE 〜の代わりに上記コマンドのみ実行すれば良いです。


トップへ戻る