ExecuteXmlReader e nulos Resultset Lança TargetInvocationException
-
03-07-2019 - |
Pergunta
Eu estou chamando um procedimento armazenado em um banco de dados SQL Server 2005 que retorna um conjunto de resultados XML. Às vezes ele vai retornar um conjunto de resultados nulos becuase não há linhas para retornar. Quando isso acontece athe método ExecuteXmlReader lança uma TargetInvocationException. Este parece ser um problema conhecido (ver: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/5e90e3c0-605b-406d-848a-dea7b16f458e/ ).
Qual é a melhor maneira de lidar com essa exceção?
Solução
Não consigo pensar em 3 opções
- Modificar procedimento armazenado para retornar um valor manequim / vazio
- Modificar Código - exceção captura e não fazer nada - ou erro de log
- Use DataSet -. Você deve obter um DataSet vazio, então apenas verificar se DataSet está vazio ou não
Como um post SO relacionado para a 3ª escolha, aqui é uma pergunta SO sobre como verificar se o DataSet está vazio ou não
Em C #, qual é a melhor maneira de testar se um conjunto de dados está vazio?