>백엔드 개발 >C++ >내 SqlDataReader에 이 열이 포함되어 있나요?

내 SqlDataReader에 이 열이 포함되어 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-31 12:19:10895검색

Does My SqlDataReader Contain This Column?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.