Я вызываю хранимую процедуру в базе данных SQL Server 2005, которая возвращает набор результатов XML. Иногда он возвращает нулевой набор результатов, потому что нет возвращаемых строк. Когда это происходит, метод ExecuteXmlReader создает исключение TargetInvocationException. Похоже, это известная проблема (см. "nofollow noreferrer">http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/5e90e3c0-605b-406d-848a-dea7b16f458e/).
Что лучше способ обработки этого исключения?
ExecuteXmlReader и нулевой набор результатов вызывают исключение TargetInvocationException
Ответы (1)
Я могу придумать 3 варианта
- Измените хранимую процедуру, чтобы она возвращала фиктивное/пустое значение.
- Изменить код – поймать исключение и ничего не делать – или записать ошибку в журнал.
- Используйте DataSet. Вы должны получить пустой набор данных, поэтому просто проверьте, пуст он или нет.
В качестве связанного сообщения SO для третьего выбора, вот вопрос SO о том, как проверить, пуст ли DataSet или нет.
Что в C# лучший способ проверить, пуст ли набор данных?
person
dance2die
schedule
03.03.2009