システム開発のおぼえがき

いろいろと作ってます

VB

vb.net DBアクセスできるサブルーチンを作る。・・・その①

2016/09/15

vb.netでDBにアクセスするおぼえがき。

動作vb.netのolddbでMSACCESSのMDBに接続してデータをアクセスサンプルを作ってみた。

前提
・oledbとodp.netでoracleでも使えるようにしたいがoledb版のみ
・バインド変数をprameter渡しする。
・ExecuteScalar()を使っているので ①は対象件数を取得、②は取得テーブルの1行1列目を取得する。

formにButton1とtextbox1を用意してButton1にイベントを設定
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim con1 As New OleDb.OleDbConnection
Dim cmd1 As New OleDb.OleDbCommand

' DB接続文字列の設定
con1.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & "C:\VB\VBDBアクセスサンプル\database.mdb"

' コネクションの設定
cmd1.Connection = con1

' DB接続を開く
con1.Open()

' SQL文の設定
cmd1.CommandText = "SELECT count(*) FROM 顧客マスタ "
cmd1.CommandText &= "WHERE 顧客コード = :1"

' SQL文パラメータの設定
cmd1.Parameters.Add(":1", OleDb.OleDbType.Char, 10)
cmd1.Parameters(":1").Value = Me.TextBox1.Text

' 社員テーブルから該当社員コードのレコード数取得・・・①
Dim count As Integer
count = cmd1.ExecuteScalar()
If count > 0 Then
Me.TextBox2.Text = "read ok"
Else
Me.TextBox2.Text = "not found"
End If

' SQL文の設定
cmd1.CommandText = "SELECT * FROM 顧客マスタ "
cmd1.CommandText &= "WHERE 顧客コード = :1"

' SQL文パラメータの設定
cmd1.Parameters.Add(":1", OleDb.OleDbType.Char, 10)
cmd1.Parameters(":1").Value = Me.TextBox1.Text
' 社員テーブルから該当社員コードのレコード数取得・・・②
Dim a As String
a = CStr(cmd1.ExecuteScalar())
If count > 0 Then
Me.TextBox3.Text = a
Else
Me.TextBox3.Text = a
End If

' DB接続を閉じる
If Not con1 Is Nothing Then
con1.Close()
con1.Dispose()
End If
End Sub

-VB