En ce qui concerne le stockage SQL dans le code, la plupart des gens utilisent des chaînes:stocker des chaînes SQL en XML XElement au lieu de chaîne pour préserver la fin de ligne
Dim strSql As String = "Select Foo, Bar From FooBarTable Where Something = @Something"
Le problème est, quand vous avez de très longues chaînes SQL, lecture eux dans le code devient difficile. Vous pouvez généralement diviser les chaînes comme ceci:
Dim strSql As String = "Select Foo, Bar From FooBarTable " & _
"Where Something = @Something"
Cela provoque un certain nombre de problèmes:
- Vous ne pouvez pas le copier ou de SSMS
- Il utilise un moyen inefficace (
&
) de concaténation de la chaîne (pas que cela compte vraiment puisque votre DB est plus lent que la classe de chaînes)
Alors pourquoi ne pas stocker de longues chaînes SQL un type System.XML.Linq.XElement
?
Dim SQL = <SQL>
Select Foo, Bar From FooBarTable
Where Something = @Something
</SQL>
Vous pouvez l'appeler dans le code en utilisant SQL.Value
.
Avec cette méthode, vous pouvez conserver les sauts de ligne et le formatage pour faciliter la lecture et faciliter la copie.
Ma question est, au fond, est-ce que je tombe sur une façon intelligente pour stocker des chaînes SQL multi-lignes dans le code, ou suis-je totalement absent quelque chose ici? Cela semble fonctionner dans mon code, mais je ne suis pas sûr de son efficacité.
Des pensées?
Notez que dans C# cela peut être fait en utilisant le mot-clé @ avant le début de la chaîne –
@ Tim: Merci. C'est encore une autre raison d'utiliser C# sur VB.NET, je pense. J'ai juste vérifié pour voir si VB.NET 10 (la version .NET 4) fonctionnait peut-être comme C# puisque le caractère de continuation de ligne est maintenant facultatif (pour la plupart des choses), mais cela ne fonctionne pas. –