V3187. Parts of an SQL query are not delimited by any separators or whitespaces. Executing this query may lead to an error.
Анализатор обнаружил, что в SQL-запросе, вероятно, пропущен пробел или какой-либо другой символ-разделитель между словами. Эта опечатка могла быть допущена в результате конкатенации, интерполяции или вызова метода 'String.Format' для получения строки SQL-запроса.
Рассмотрим пример:
public Customer GetCustomerData(ulong id)
{
string query = "SELECT c.Email, c.Phone, " +
"c.firstName, c.lastName FROM customers c" + // <=
$"WHERE customers.id = {id}";
var sqlCommand = new SqlCommand(query);
....
}
Тут создается SQL-запрос на получение данных клиента по его ID. Обратите внимание, что этот запрос был получен путем конкатенации двух строк, в месте соединения которых отсутствует пробел. Из-за этой ошибки SQL-запрос будет содержать опечатку — "сWHERE" — что сделает его некорректным.
Чтобы исправить проблему, нужно подставить недостающий пробел:
public Customer GetCustomerData(ulong id)
{
string query = "SELECT c.Email, c.Phone, " +
"c.firstName, c.lastName FROM customers c " +
$"WHERE customers.id = {id}";
var sqlCommand = new SqlCommand(query);
....
}