どうも、あおです。
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は今回以下のようにしています。

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抽出結果をデータテーブルにセットしたい場合、
事前にデータテーブルを作成してください。

