TIL

Today I Learned. 知ったこと、学んだことを書いていく

SQL Serverに接続 - VB

SQL Serverに接続する

Dim con As System.Data.SqlClient.SqlConnection = Nothing

Try
    '接続する端末名
    Dim serverName As String = "localhost"  ' 例) 192.168.0.173

    '接続するデータベース名
    Dim dbName As String = "testdb"

    'ユーザ名
    Dim userId As String = "sa"

    'パスワード
    Dim password As String = "sqlserver"

    con = New System.Data.SqlClient.SqlConnection()

    'SQL Server認証を利用して接続
    con.ConnectionString =
         "Data Source = " & serverName &
         ";Initial Catalog = " & dbName &
         ";User ID = " & userId &
         ";Password = " & password

    con.Open()

    Console.WriteLine(con.DataSource)   ' localhost と出力

    Dim sqlCmd As SqlClient.SqlCommand
    sqlCmd = con.CreateCommand()

    ' 実行するSQLを設定
    sqlCmd.CommandText = "CREATE TABLE TEST_TABLE1 (ID Char(3) PRIMARY KEY)"

    ' SQL実行
    sqlCmd.ExecuteNonQuery()

Catch ex As Exception
    Console.WriteLine("Error! {0}", ex.Message)
Finally
    ' If Not IsNothing(con) Then
    '     con.Close()
    ' End If

    If Not con.State = ConnectionState.Closed Then
        con.Close()
    End If

    ' リソースの開放
    con.Dispose()
End Try


要点

  • System.Data.SqlClient.SqlConnectionを使う
  • SqlConnection.ConnectionStringに接続情報を設定する
  • SqlConnection.Open()で接続
  • SqlConnection.CreateCommand()SqlClient.SqlCommandを生成
  • SqlCommand.CommandTextに実行するSQLを設定
  • SqlCommand.ExecuteNonQuery()SQLを実行
  • SqlConnection.Close()で接続を閉じる

2017/9/8 変更

IsNothing(con)ではなく、con.State = ConnectionState.Closedで閉じるかどうかの分岐を行うように変更

リソースの開放(con.Dispose())をするように変更


SELECTとかはSqlCommand.ExecuteNonQuery()じゃないのかな?調べてない