ExecuteXmlReader и нулевой набор результатов выдают исключение TargetInvocationException
-
03-07-2019 - |
Вопрос
Я вызываю хранимую процедуру в базе данных SQL Server 2005, которая возвращает набор результатов XML.Иногда он возвращает нулевой набор результатов, потому что нет строк для возврата.В этом случае метод ExecuteXmlReader выдает исключение TargetInvocationException.Кажется, это известная проблема (см.: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/5e90e3c0-605b-406d-848a-dea7b16f458e/).
Как лучше всего обработать это исключение?
Решение
Я могу придумать 3 варианта
- Изменить хранимая процедура вернуть фиктивное/пустое значение
- Изменить код - перехватить исключение и ничего не делать - или занести в журнал ошибку
- Использовать Набор данных - Вы должны получить пустой набор данных, поэтому просто проверьте, пуст ли набор данных или нет.
В качестве связанного сообщения SO для третьего выбора есть вопрос SO о том, как проверить, пуст ли набор данных или нет.
Не связан с StackOverflow