2011-02-03 5 views
1

이 필드가 존재하지 않는 예외를 슬로우 :왜 reader.GetOrdinal ("FieldName")이 예외를 throw합니까?

reader.IsDbNull(reader.GetOrdinal("FieldName")) => 강타

왜 -1을 반환?

+1

논리를 따르면 ... 왜 예외가 필요합니까? –

+0

-1을 reader.GetSchemaTable(). 에서처럼 반환하지 않는 이유는 무엇입니까? Columns.IndexOf ("FieldName")? btw. IndexOf는 항상 -1 LOL ... – Elisabeth

+0

:)를 반환합니다.하지만이 값은 일반적으로이 값을 독자의 다른 메서드에 전달하므로이 값을 처리하는 데 더 많은 논리가 필요합니다. –

답변

0

여기에서 추측하려고 노력할 것입니다.

이 방법의 일반적인 패턴은 열 이름 GetOrdinal호출하고 의 getXXX 전화()의 열마다의 이름에 의해 검색을보다 빠른 순서로 주어진 방법.

따라서 여기서 예외가 발생하면 우리는 빨리 실패하고 무시할 수 없습니다. Wihtout 예외가 존재하지 않는 열을 찾으려고 노력한 다음 ordinal (이 경우 생략하기가 매우 쉬운 -1을 확인하지 않고) 필드를 찾으려고합니다. 여기서는 잘못된 것이 있음을 알게 될 것입니다. 전에 몇 단계 (전에 너무 많은 단계가있을 수 있습니다).

관련 문제