當涉及到存儲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