Рассмотрим следующий код:ExecuteReader не возвращает никаких результатов, когда осмотрела запрос делает
StringBuilder textResults = new StringBuilder();
using(SqlConnection connection = new SqlConnection(GetEntityConnectionString()))
{
connection.Open();
m.Connection = connection;
SqlDataReader results = m.ExecuteReader();
while (results.Read())
{
textResults.Append(String.Format("{0}", results[0]));
}
}
Я Activity Monitor в Sql Server Mgmt Studio, базы данных, чтобы проверить точный запрос, который в настоящее время отправлены. Затем я скопировал этот текст запроса в окно редактора запросов в SSMS, и запрос вернул ожидаемые результаты. Однако SqlDataReader results
всегда пуст, указав «перечисление не получило результатов».
Мое подозрение в том, что каким-то образом результаты возвращаются неправильно, что заставляет меня думать, что что-то не так с кодом выше, а не с самим запросом.
Есть ли что-нибудь, что может вызвать это в коде выше? Или что-то, что я забыл?
EDIT:
Вот запрос, как указано SQLCommand объекта:
SELECT DISTINCT StandardId,Number
FROM vStandardsAndRequirements
WHERE StandardId IN ('@param1','@param2','@param3')
ORDER BY StandardId
Вот запрос, как он появляется в Activity Monitor:
SELECT DISTINCT StandardId,Number
FROM vStandardsAndRequirements
WHERE StandardId IN ('ABC-001-0','ABC-001-0.1','ABC-001-0')
ORDER BY StandardId
Запрос работает против одного представления.
Когда я запустил второй запрос к базе данных, он вернул 3 строки.
SqlDataReader указывает 0 строк.
Возможно, вам стоит показать нам запрос и то, что выглядят таблицы, довольно сложно сказать, что не получается без запроса/DDL. Код выше в порядке. – Matten
Спасибо, сделаю. – morganpdx