【VB.NET/SQLServer】SQL構文をVBに反映するサンプル

sql-to-vb-summne
スポンサーリンク

どうも、あおです。

 

 

SQLServerでつくったSQL文をVB.NETに反映したい時のメモ。

 

 

 

まず、SQLServer側のサンプルSQL

SELECT 
       ID
      ,NAME
      ,ADDRESS
      ,TEL
      ,BIKOU
  FROM MstKojin

 

 

 

 

これをExcelなどで以下に編集

stSQL = ""
stSQL = stSQL & "SELECT " & vbCrLf
stSQL = stSQL & "       ID " & vbCrLf
stSQL = stSQL & "      ,NAME " & vbCrLf
stSQL = stSQL & "      ,ADDRESS " & vbCrLf
stSQL = stSQL & "      ,TEL " & vbCrLf
stSQL = stSQL & "      ,BIKOU " & vbCrLf
stSQL = stSQL & "  FROM MstKojin"

 

 

 

EXCELは今回以下のようにしています。

sql-to-vb-1

 

 

 

 

 

 

1)D2セルに固定値「stSQL = “”」をセット

2)B3セルにSQLServerのSQL構文をそのまま貼付け

3)D3セルに以下のExcel関数をセットして、対象行までドラッグ

=IF(B3<>””,”stSQL = stSQL & “”” & B3 & “”” & vbCrLf”,””)

 

 

 

 

これをVB.NET側に貼り付けます。(以下サンプル、中ほどの箇所)

        Dim con As New SqlConnection
        Dim com As New SqlClient.SqlCommand
        Dim adapter As SqlDataAdapter
        Dim stSQL As String
        Dim dtSelect As New dsSelect.dtKojinDataTable

        con = New SqlConnection()

        '--- 接続文字列の設定 ---
        con.ConnectionString =
        "Data Source=.\SQLEXPRESS;" &
        "AttachDbFilename=" &
        """C:\Program Files (x86)\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\xxx.mdf"";" &
        "Integrated Security=True;" &
        "Connect Timeout=30;" &
        "User Instance=True"

        'DBを開く
        con.Open()

        com.Connection = con

        stSQL = ""
        stSQL = stSQL & "SELECT " & vbCrLf
        stSQL = stSQL & "       ID" & vbCrLf
        stSQL = stSQL & "      ,NAME" & vbCrLf
        stSQL = stSQL & "      ,ADDRESS" & vbCrLf
        stSQL = stSQL & "      ,TEL" & vbCrLf
        stSQL = stSQL & "      ,BIKOU" & vbCrLf
        stSQL = stSQL & "  FROM MstKojin" & vbCrLf

        adapter = New SqlDataAdapter()

        adapter.SelectCommand = New SqlCommand(stSQL, con)

        adapter.SelectCommand.CommandType = CommandType.Text

        adapter.Fill(dtSelect)

        dtSelect.Dispose()

        con.Close()

 

 

上記で使用しているデータテーブルは、

SQLで抽出するテーブルに合わせて作成しています。

 

SQL抽出結果をデータテーブルにセットしたい場合、

事前にデータテーブルを作成してください。