Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
フィールドが存在しない場合、これは例外をスローします。
reader.IsDbNull(reader.GetOrdinal("FieldName"))=>強打
reader.IsDbNull(reader.GetOrdinal("FieldName"))
なぜ -1 を返さないのですか?
ここで推測してみます。
このメソッドの一般的なパターンは、列名に対してGetOrdinalを呼び出してから、指定された序数でGetXXX()メソッドを呼び出すことです。これは、列の名前で毎回検索するよりも高速です。
したがって、ここで例外が発生した場合、すぐに失敗し、無視することはできません。例外なく、存在しない列を見つけようとし、指定された序数でフィールドを見つけようとします (この場合は省略しやすい -1 をチェックせずに)。数ステップ前 (前のステップが多すぎる場合もあります)。