Почему reader.GetOrdinal ("FieldName") генерирует исключение? - PullRequest
1 голос
/ 03 февраля 2011

это вызывает исключение, когда поле не существует:

reader.IsDbNull(reader.GetOrdinal("FieldName")) => Взрыв

Почему бы не вернуть -1?

1 Ответ

0 голосов
/ 03 февраля 2011

Я постараюсь угадать здесь.

Общий шаблон для этого метода - вызвать GetOrdinal для имени столбца, а затем вызвать GetXXX () методов сзаданный порядковый номер, который быстрее, чем каждый раз выполнять поиск по имени столбца.

Поэтому в случае исключения мы быстро терпим неудачу и не можем его игнорировать.Без исключения мы попытаемся найти столбец, который не существует, а затем попытаемся найти поле по заданному порядковому номеру (без проверки на -1, который очень легко пропустить в этом случае), и только здесь мы поймем, что что-то пошло не такза несколько шагов до (может быть даже слишком много шагов до).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...