ExecuteXmlReader и нулевой набор результатов выдают исключение TargetInvocationException

StackOverflow https://stackoverflow.com/questions/602820

Вопрос

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

Это было полезно?

Решение

Я могу придумать 3 варианта

  1. Изменить хранимая процедура вернуть фиктивное/пустое значение
  2. Изменить код - перехватить исключение и ничего не делать - или занести в журнал ошибку
  3. Использовать Набор данных - Вы должны получить пустой набор данных, поэтому просто проверьте, пуст ли набор данных или нет.

В качестве связанного сообщения SO для третьего выбора есть вопрос SO о том, как проверить, пуст ли набор данных или нет.

Как в C# лучше всего проверить, пуст ли набор данных?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top