SqlDataReader에서 열 이름 존재를 확인하는 방법
데이터 액세스 계층에서 다양한 저장 프로시저를 처리하기 위한 일관된 방법을 만드는 것은 다음과 같습니다. 특히 모든 프로시저에서 공유되지 않는 열로 작업할 때 더욱 어렵습니다. C#에서 이 문제를 극복하기 위한 효과적인 해결책은 SqlDataReader 개체 내에 특정 열이 있는지 확인하는 것입니다.
이를 달성하기 위해 확장 메서드를 구현할 수 있습니다.
public static class DataRecordExtensions { public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i = 0; i < dr.FieldCount; i++) { if (dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)) return true; } return false; } }
이것은 메서드는 SqlDataReader의 필드를 반복하고 대소문자를 무시하고 제공된 열 이름과 이름을 비교합니다. 열이 발견되면 true를 반환합니다. 이 접근 방식은 성능에 영향을 미치고 예외 처리 시 거짓 긍정을 초래할 수 있는 제어 논리에 대한 예외를 사용하는 것보다 선호됩니다.
또한 GetSchemaTable()을 사용하는 것도 또 다른 옵션이지만 완전히 지원되지 않으며 성능 오버헤드가 발생합니다. . 따라서 필드를 반복하는 것은 SqlDataReader 개체에 열이 있는지 확인하는 안정적이고 효과적인 방법입니다.
위 내용은 내 SqlDataReader에 이 열이 포함되어 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!