Перечисление SqlDataReader не дало результатов

Пытаюсь разобраться, но не могу.

Я выполняю хранимую процедуру через SqlCommand, и возвращаемый объект SqlDatareader не дает мне результатов, однако я могу их увидеть, если изучу объект в отладчике. вот изображение того, о чем я говорю:

Просмотр строки представления результатов

В строке "Представление результатов" написано "Перечисление не дало результатов", но в пути:

base -> base -> ResultView -> [0] -> Non-Public Members -> _values ​​-> [0],1,[2],[3] отображаются результаты.

Кто-нибудь знает, как их получить?

Это код, который я использую для получения определенного столбца:

if (dataReader.Read())
{
   ProjectFolderId = dataReader["ItemID"].ToString();
}

но if возвращает false.


person eliashdezr    schedule 29.10.2012    source источник
comment
Возникла такая же проблема. Любое решение?   -  person Chintan    schedule 07.08.2017


Ответы (1)


Вы должны быть осторожны: ридер можно потреблять только один раз. Если данные видны в окне предварительного просмотра, вполне вероятно, что вы случайно использовали эти данные в отладчике, и они больше не доступны.

Убедитесь, что он не виден/не развернут в окне предварительного просмотра отладчика, и повторите попытку.

Показанный _values - это просто наследие/остатки последней строки, которая была успешно прочитана.

person Marc Gravell    schedule 29.10.2012
comment
Как я могу сделать их невидимыми? Кстати, я выполнил запрос без хранимой процедуры (прямо в свойстве CommandText, а затем ExecuteSelect), и теперь он работает. Я считаю, что это что-то странное с процессом, использующим хранимые процедуры, что вы думаете? - person eliashdezr; 29.10.2012
comment
@equasar Я сомневаюсь, что это относится к хранимым процедурам - кроме настройки типа команды, API идентичен; обычно вам нужно выборочно щелкнуть, чтобы развернуть перечисление, потому что IDE знает, что многие из них неповторяемы. Возможно, вы нажали, чтобы развернуть его? - person Marc Gravell; 29.10.2012
comment
Ты молодец, @MarcGravell. Я не могу поверить, что отладчик потребляет данные. - person Brendan L; 25.02.2017