Est-il possible pour vous de mettre à niveau vers Visual Studio 2015?
Vous pouvez utiliser les nouvelles littéraux de chaîne multi-ligne dans Visual Basic 14:
Dim sql As String = "
SELECT t1.Name,
t1.Description,
t1.Address,
t1.PhoneNumber,
t2.RegistrationID,
t2.Date,
t2.Description,
t2.RegistrationStatus
FROM Users t1
JOIN Registrations t2 ON t1.UserID = t2.UserID
WHERE t2.RegistrationID = @RegistrationID
"
Il n'y a pas de limitations déjà connues de XML multi-liners (problèmes <
, &
, ...). La seule chose dont vous avez besoin pour vous échapper à l'intérieur de la chaîne est "
(remplacez-la par ""
).
Et nouvelle fonctionnalité vous permet de faire vos chaînes lisibles comme jamais avant d'interpolation de chaîne :
Dim tableName As String = "Registrations"
Dim currentOrderByColumn As String = "t2.Date"
Dim sql = $"SELECT t1.Name, t1.Description FROM {tableName} ORDER BY {currentOrderByColumn}"
Dim sql2 = $"
SELECT t1.Name, t1.Description
FROM {tableName}
ORDER BY {currentOrderByColumn}
"
expressions à l'intérieur des chaînes interpolées soutenir également entièrement renommage, donc renommer tableName
-mainTableName
effectuerons également renommer à l'intérieur du chaîne.
caractères supplémentaires que vous devez prendre en charge dans ce type de chaîne sont {
et }
- vous devez les remplacer par {{
ou }}
respectivement. Mais dans T-SQL they have only one specific purpose.
Plus d'informations: 1, 2
Avis: Si vous souhaitez conserver temporairement l'aide solution XML désapprouvée, alors NE PAS utiliser le formulaire
<tag attribute="text" />.Attribute("attribute").Value
parce qu'il supprime nouveau caractères de ligne ce qui conduit à étranges SQL single-liners comme
SELECT t1.Name, t1.Description, t2.Date FROM Users t1
.
Au lieu de cela, utilisez le formulaire
<tag>text</tag>.Value
qui préserve les fins de ligne donc ce que vous voyez (dans l'éditeur de code) est ce que vous obtenez (à l'entrée du processeur de commande SQL). La lisibilité SQL est l'objectif principal de cette Q/A et ce détail en fait partie.
(Mais rappelez-vous cette amélioration de la forme de SQL en XML est obsolète, trop = cela fonctionne, mais abandonner le plus tôt possible.)
Avec Visual Studio 2015, cette technique devient une solution obsolète, utile uniquement pour la rétrocompatibilité avec les utilisateurs bloqués à Visual Basic plus ancien. Ce n'est plus "la meilleure solution". :) Un candidat pour le refactoring, chaque fois que cela est utilisé. – miroxlav
@miroxlav Pouvez-vous expliquer cela. La fonctionnalité VS 2015 autorise les chaînes multilignes, mais insère des caractères de nouvelle ligne à la fin de chaque ligne. – Blackwood
@Blackwood - devrions-nous demander "pourquoi les nouvelles lignes sont présentes" également avec C# '@" Chaîne multiligne "'? Pensez-vous qu'il y ait une raison pour que l'équivalent VB de ces multi-liners se comporte différemment? Dans VB et C#, vous pouvez toujours supprimer les nouvelles lignes en ajoutant '.Replace (...)'. – miroxlav