当涉及到存储SQL代码,大多数人使用的字符串:存储SQL字符串保留换行符
Dim strSql As String = "Select Foo, Bar From FooBarTable Where Something = @Something"
的问题是,当你有很长的SQL字符串,读数他们在代码中变得困难。你通常可以分割字符串像这样:
Dim strSql As String = "Select Foo, Bar From FooBarTable " & _
"Where Something = @Something"
这导致了一些问题:
- 你不能把它复制到或从SSMS
- 它使用一个低效的方式(
&
)连接字符串(不是它真的很重要,因为你的DB比字符串类慢几个数量级)
那么为什么不把长SQL字符串存储为一个System.XML.Linq.XElement
类型?
Dim SQL = <SQL>
Select Foo, Bar From FooBarTable
Where Something = @Something
</SQL>
您可以使用SQL.Value
在代码中调用它。
使用此方法,您可以保留换行符和格式,使其更易于阅读和更容易复制。
我的问题是,基本上,我才偶然发现一个聪明的方式来存储代码多行SQL字符串,还是我完全失去了一些东西?它似乎在我的代码中工作,但我不确定它的效率如何。
有什么想法?
注意,在C#这可以使用@关键字串 – 2010-06-22 21:42:46
@Tim开始之前完成:谢谢。这是使用C#而不是VB.NET的另一个原因,我认为。我只是检查,看看可能VB.NET 10(.NET 4版本)像C#一样工作,因为行续字符现在是可选的(对于大多数情况),但它不起作用。 – 2010-06-22 21:51:16