Возможно ли обновление до Visual Studio 2015?
Вы можете использовать новые Многострочные строковые литералы в 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
"
Там нет никаких ограничений, ранее известных из XML мульти-вкладышей (проблем с <
, &
...). Единственное, что вам нужно избежать внутри строки: "
(замените его на ""
).
И большой новая строка интерполяция функция позволяет сделать ваши строки для чтения, как никогда раньше:
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}
"
выражений внутри интерполяции строк также полностью не поддерживают переменные переименовывать, так что переименование tableName
в mainTableName
также будет выполнять переименование внутри строка.
Дополнительные символы должны заботиться о в этом типе строки являются {
и }
- вы должны заменить их {{
или }}
соответственно. Но в T-SQL they have only one specific purpose.
Дополнительная информация: 1, 2
Примечание: Если вы хотите временно сохранить с помощью XML устаревший метод обхода, то НЕ используйте форму
<tag attribute="text" />.Attribute("attribute").Value
, потому что снимает новый строковые символы Что приводит к странным SQL-симуляторам, например
SELECT t1.Name, t1.Description, t2.Date FROM Users t1
.
Вместо этого используйте форму
<tag>text</tag>.Value
который сохраняет строки окончаний так, что вы видите (в редакторе кода) является то, что вы получите (на входе командного процессора SQL). Чтение SQL является основной целью этого Q/A, и эта деталь является его частью.
(Но помните эту усовершенствованную форму SQL в XML является устаревшим, тоже = это работает, но отказаться от него как можно скорее.)
с Visual Studio 2015, эта техника становится устаревшей обходной путь, полезно только для обратной совместимости с пользователями, застрявшими на старой Visual Basic. Больше не «лучшее решение». :) Кандидат на рефакторинг, всякий раз, когда это используется. – miroxlav
@miroxlav Можете ли вы это объяснить. Функция VS 2015 поддерживает многострочные строки, но в конце каждой строки вставляет символы новой строки. – Blackwood
@Blackwood - мы должны спросить «почему новые строки присутствуют» также с C# '@« Многострочная строка »? Считаете ли вы, что есть какая-то причина, по которой эквивалент VB этих мультилайнеров должен вести себя по-другому? В VB и C# вы всегда можете удалить новые строки, добавив '.Replace (...)'. – miroxlav