我在SQL Server 2005数据库上调用存储过程,该数据库返回XML结果集。有时它会返回null结果集,因为没有要返回的行。当发生这种情况时,ExecuteXmlReader方法抛出TargetInvocationException。这似乎是一个已知问题(参见: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/5e90e3c0-605b-406d-848a-dea7b16f458e/ )。
处理此异常的最佳方法是什么?

有帮助吗?

解决方案

我可以想到3个选择

  1. 修改存储过程以返回虚拟/空值
  2. 修改代码 - 捕获异常并且不执行任何操作 - 或记录错误
  3. 使用 DataSet - 您应该获得一个空的DataSet,以便检查DataSet是否为空。
  4. 作为第三选择的相关SO帖子,这里是关于如何检查DataSet是否为空的SO问题

    In C#,测试数据集是否为空的最佳方法是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top