SQL文をVB.NETコード内で直接記述したいとき、
(1)
Dim query = _
"select *" & vbLf & _
"from hoge" & vbLf & _
"where a=1" & vbLf & _
"and b in('1','2','3')" & vbLf & _
"order by" & vbLf & _
" a,b,c"
こんな書き方をしてませんか?
面倒ですよね。
ヒアドキュメント風にしてみましょう。
(2)
Dim query = <Query>
select *
from hoge
where a=1
and b in('1','2','3')
order by
a,b,c
</Query>.Value.Trim()
スッキリしました。
これはXMLリテラルを利用しています。
そのため、"<" や ">" が含まれる場合はエラーになってしまいます。
もうちょっと工夫してみましょう。
(3)
Dim query = <Query><![CDATA[
select *
from hoge
where a=1
and b<>1
order by
a,b,c
]]></Query>.Value.Trim()
CDATAセクションを使うことで、"<" や ">" が含まれる場合も対応できます。
"]]>" という文字列が含まれる場合はこのやり方でもエラーになってしまいますが、
SQL文などを扱う分にはほぼ問題にならないでしょう。