当字段不存在时抛出异常:
reader.IsDbNull(reader.GetOrdinal("FieldName"))
=>砰
为什么不返回-1?
答案 0 :(得分:0)
我会在这里猜测。
此方法的常见模式是为列名称调用 GetOrdinal ,然后使用给定的序号调用 GetXXX()方法,这比按列名称搜索更快每一次。
因此,如果出现异常,我们会快速失败,我们不能忽视它。除了异常,我们将尝试找到一个不存在的列,然后尝试按给定的序数找到一个字段(不检查-1,在这种情况下很容易省略),只有在这里我们才会意识到出了问题之前的几步(可能是之前的步骤太多)。