VB.NETでSQLServerに接続する(SqlConnectionオブジェクト)

2022年3月18日金曜日

SQLServer VB.NET データベース

t f B! P L
今回から何回かに分けてデータベースを扱うプログラムを
御紹介させていただければと思います。

まず第一回目はデータベースとの接続を
確立する手順を御紹介します。

SQLServerとのデータのやり取りを行なうには
SqlConnectionオブジェクト使用し、
SQLServerとの接続をまずは確立する必要があります。

SqlConnectionオブジェクトのConnectionStringプロパティに
接続情報となる接続先のサーバ名やデータベース名、
ログインユーザーの情報などを記載した接続文字列を設定し、
Openメソッド呼び出すと指定したデータベースに接続できます。

ConnectionStringプロパティに設定する文字列は
(キーワード)=(値)のペアをセミコロン「;」で区切って記述します。

例:(キーワード1)=(値1);(キーワード2)=(値2);(キーワード3)=(値3)

SQLServer名やデータベース名、ユーザー名やパスワードなどを
上記の書式でConnectionStringプロパティにセットします。
必要最低限の設定内容としては下記のキーワードを設定します。

Data Source            SQLServerのサーバ名・インスタンス名。
                                サーバ名の前に接続プロトコルを指定するプレフィクスを
                                指定することも可能です。
                                「np:」 名前付きパイプ
                                「tcp:」    TCP/IP
                                「lp:」 共有メモリ
Initial Catalog         接続するデータベース名
Integrated Security    True - 現在のWindows資格情報で認証されます。
           (Windows認証)
            False - ユーザー名とパスワードを指定し認証します。
           (SQLServer認証)
User ID                        SQLServer認証でログインするアカウント名
Password                    SQLServer認証でログインする際のアカウントのパスワード
ではサンプルを見てみましょう。

設定例として下記の情報でSQLServer認証で接続する
接続文字列を作成し、SQLServerへ接続してみましょう。
SQLServer サーバ名:DBServer
SQLServer インスタンス名:MyInstance
SQLServer データベース名:ExampleDB
SQLServer ユーザー名:sa
パスワード:*******

Private Sub prcDataOperation
Dim strConnect As String

'接続文字列を作成する
strConnect = "Data Source=DBServer\MyInstance;" & _
             "Initial Catalog=ExampleDB;" & _
             "Integrated Security=False;" & _
             "User ID=sa;" & _
             "Password=*******"

'データベースへ接続しデータ操作を行う
Try
Using conSQLConnect As New SqlConnection
'接続文字列をセットし、データベースへ接続する。
        With conSQLConnect
                .ConnectionString = strConnect
                .Open()
                End With

'###この部分にデータベース処理を記述します。###

'処理が終了すれば接続を閉じる

                conSQLConnect.Close()
End Using

'エラー処理
Catch ex As Exception
        MsgBox("No." & Err.Number & vbCrLf & Err.Description, _                                                    MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, _
                             "データベース接続エラー")
Exit Sub
        End Try
End Sub

以上がデータベースへ接続するサンプルです。
上記の他にも接続するプロトコルを指定したり、
タイムアウト時間を設定したりなど様々な設定が可能です。
もし機会があれば御紹介できればと思っております。

今回は簡単な御紹介となっておりますので、
MicroSoftのドキュメントなども参考にしていただければ幸いです。
また、ここで使用しているUsingステートメントや
Try・Catch・Finallyによるエラー処理に関しても
またの機会に御紹介できればと思います。

他にもいろいろと方法もございますし、
開発するシステムによっては、よりふさわしい方法もあるかと思いますが、
御参考にしていただければと思います。
サンプルはVB.NETで作成しておりますが、
考え方はどんな言語でも同じですので、
参考にしていただければと思います。

QooQ