VBでDBの接続方法の覚え書きをします。
SQLserverに接続します。
SqlConnectionオブジェクトに接続文字列を設定する。
Data Source = サーバ名 Initial Catalog = データベース名 Persist Security Info = 接続情報の保護 User ID = ユーザID Password = パスワード おまけ Connect Timeout = DBに接続している時間
接続にはSqlConnectionのOpenメメソッドで接続
切断にはSqlConnectionのCloseメメソッドで接続
サーバーに対するアクティブな接続数を最小限に抑えるためDBの切断が必要。
'SqlConnectionオブジェクトに接続文字列を設定 Dim cn As New SqlClient.SqlConnection = _ "Data Source = サーバ名;" & _ "Initial Catalog = データベース名;" & _ "Persist Security Info = True;" & _ "User ID = ユーザID;" & _ "Password = パスワード;" & _ "Connect Timeout = 30;" 'データベースに接続 cn.Open() 'データベースを切断 cn.Close()
毎回プロジェクトごとに接続文字列を長々と書いているのも別プロジェクトへの使い回しがしづらいので、
接続文字列を変数にして使用する。
あとはDBに接続できるメソッドを作成する。
’DB接続文字列宣言 Public strSRV As String = "server" 'サーバ名 Public strSRC As String = "DB" 'データソース名 Public StrId As String = "userid" 'ログインID Public strPw As String = "password" 'パスワード Public intCnto As Integer = "30" 'コネクションタイムアウト初期値 ’DB接続メソッド Public Function fncCnOpen(ByRef cn As SqlClient.SqlConnection) As Boolean '--------------------------------------------- 'DBコネクションを開く '--------------------------------------------- Dim strConn As String '接続文字列設定 strConn = strConn & "Data Source=" & strSRV & ";" strConn = strConn & "Initial Catalog=" & strSRC & ";" strConn = strConn & "Persist Security Info=True;" strConn = strConn & "User ID=" & StrId & ";" strConn = strConn & "Password=" & strPw & ";" strConn = strConn & "Connect Timeout=" & Val(intCnto) & ";" '領域確保 cn = New SqlClient.SqlConnection(strConn) Try '接続 cn.Open() fncCnOpen = True Catch ex As Exception '接続失敗 fncCnOpen = False Exit Function Finally End Try End Function
これでDB接続は少ない命令で実行が可能。
Dim scn As SqlClient.SqlConnection cn = New SqlClient.SqlConnection fncScnOpen(cn)
もちろん切断も。
Public Sub subCnClose(ByRef cn As SqlClient.SqlConnection) '--------------------------------------------- 'DBコネクションを閉じる '--------------------------------------------- cn.Close() End Sub subCnClose(cn)