在代码中存储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"
这会导致许多问题:
&
)(因为你的数据库比字符串类慢几个数量级,所以它并不重要)那么为什么不将长SQL字符串存储为System.XML.Linq.XElement
类型?
Dim SQL = <SQL>
Select Foo, Bar From FooBarTable
Where Something = @Something
</SQL>
您可以使用SQL.Value
在代码中调用它。
使用此方法,您可以保留换行符和格式,使其更易于阅读,更易于复制。
我的问题是,基本上,我偶然发现了一种在代码中存储多行SQL字符串的巧妙方法,或者我在这里完全遗漏了什么?它似乎适用于我的代码,但我不确定它的效率如何。
有什么想法吗?
答案 0 :(得分:2)
我认为这是在代码中放置多行字符串常量的好方法。我喜欢它,我怀疑效率低得多。如果运行性能分析器并发现性能问题,则可以始终用字符串常量替换它们,但在开发代码时,复制和粘贴SQL命令时此方法肯定更容易。
您应该能够在没有SQL.Value
调用的情况下简单地使用.ToString
,因为Value属性是一个字符串。
答案 1 :(得分:2)
这是怎么用的......它运作得很好
Dim sFieldName As String = "MyField"
Dim sTableName As String = "MyTable"
Dim sValue As String = "MyValue"
Dim xeSQL = <SQL>
SELECT <%= sFieldName %> AS Field1
FROM
<%= sTableName %>
WHERE
<%= sFieldName %> = '<%= sValue %>'
</SQL>