为什么reader.GetOrdinal(“FieldName”)会引发异常?

问题描述:

,这将引发异常,当现场不存在:为什么reader.GetOrdinal(“FieldName”)会引发异常?

reader.IsDbNull(reader.GetOrdinal("FieldName")) =>爆炸

为什么不返回-1?

+1

遵循你的逻辑...为什么我们需要例外呢? – 2011-02-03 14:20:18

我会尽量猜在这里。

该方法的常用的模式是调用GetOrdinal列名,然后调用的getXXX()方法给定序比通过做每次列的名称搜索速度更快。

因此,在这里例外的情况下,我们快速失败,我们不能忽视它。 Wihtout异常我们将尝试找到一个不存在的列,然后尝试按给定的序号找到一个字段(不检查-1,在这种情况下很容易省略),只有在这里我们才会意识到出现了问题几步之前(甚至可能会有太多的步骤)。