■VB.Netによる開発その2(SQL発行)
前回の接続から発展させ、SQLの発行を行います。
トランザクション処理、INSERTによるデータの取得とINSERT,UPDATE,DELETE
による追加・更新・削除も行います。
Dim cn As New NpgsqlConnection 'コネクション Dim dr As NpgsqlDataReader 'DataReadr Dim tn As NpgsqlTransaction 'トランザクション Dim cmd As NpgsqlCommand 'SQL発行用 Dim i10 As Long '### 接続設定 ### cn.ConnectionString = "Server=[サーバのIPアドレス];Port=[接続に使用するポート];User Id=[ユーザー];Password=[パスワード];Database=[接続するDB名];Preload Reader = true;" '### 処理開始 ### Try '--- 接続 --- cn.Open() Catch ex As Exception MessageBox.Show("エラーが発生しました" & ex.Message) End Try 'トランザクションの開始 tn = cn.BeginTransaction Try '--- INSERT文によるレコードの追加 --- cmd = New NpgsqlCommand("INSERT INTO cm_item VALUES(10,'トマトジュース',120,1,'ジュース')", cn) i10 = cmd.ExecuteNonQuery System.Diagnostics.Debug.WriteLine(i10.ToString & "件追加しました") '--- DataReaderを使用したデータの読込 --- cmd = New NpgsqlCommand("select * from cm_item", cn) dr = cmd.ExecuteReader While dr.Read For i As Integer = 0 To dr.FieldCount - 1 System.Diagnostics.Debug.Write(dr(i) & ControlChars.Tab) Next System.Diagnostics.Debug.WriteLine("") End While dr.Close() '--- UPDATE文によるレコードの更新 --- cmd = New NpgsqlCommand("UPDATE cm_item set price = price * 1.05 WHERE code = 10", cn) i10 = cmd.ExecuteNonQuery System.Diagnostics.Debug.WriteLine(i10.ToString & "件更新しました") '--- DataReaderを使用したデータの読込 --- cmd = New NpgsqlCommand("select * from cm_item", cn) dr = cmd.ExecuteReader While dr.Read For i As Integer = 0 To dr.FieldCount - 1 System.Diagnostics.Debug.Write(dr(i) & ControlChars.Tab) Next System.Diagnostics.Debug.WriteLine("") End While dr.Close() '--- DELETE文によるレコードの削除 --- cmd = New NpgsqlCommand("DELETE FROM cm_item WHERE code = 10", cn) i10 = cmd.ExecuteNonQuery System.Diagnostics.Debug.WriteLine(i10.ToString & "件削除しました") tn.Rollback() 'ロールバック 'tn.Commit() 'コミット '--- 切断 --- cn.Close() MessageBox.Show("切断しました。") Catch ex As Exception MessageBox.Show("エラーが発生しました" & ex.Message) tn.Rollback() 'ロールバック End Try