SqlCeDataReader.GetSchemaTable 메서드

SqlCeDataReader 의 열 메타데이터를 설명하는 DataTable을 반환합니다.

네임스페이스:  System.Data.SqlServerCe
어셈블리:  System.Data.SqlServerCe(System.Data.SqlServerCe.dll)

public override DataTable GetSchemaTable()

반환 값

유형: System.Data.DataTable
열 메타데이터를 설명하는 DataTable을 반환합니다.

구현

IDataReader.GetSchemaTable()

예외조건
InvalidOperationException

작업이 유효하지 않은 경우. SqlCeDataReader는 결과 집합의 마지막 행 뒤에 올 수 있습니다.

SqlCeDataReader가 둘 이상의 기본 테이블에서 열을 읽는 경우 SqlCeDataReader가 스키마 테이블을 IsKey 값으로 채우지 않습니다. 이 동작은 다음과 같이 SELECT 쿼리를 실행할 때 발생하는 동작과 비슷합니다.

SELECT FirstName, LastName, 1+2 FROM Employees  

쿼리는 서로 다른 두 테이블, Northwind 데이터베이스의 Employees 테이블과 1+2에 의해 만들어진 임시 테이블에서 열을 읽습니다.

GetSchemaTable 메서드는 OLE DB IColumnsRowset::GetColumnsRowset 메서드로 매핑하고, 다음 순서대로 각 열의 메타데이터를 반환합니다.

스키마 테이블 열

설명

ColumnName

열의 이름입니다. 이 이름은 고유하지 않을 수 있습니다. 이름을 확인할 수 없으면 null 값이 반환됩니다. 이 이름은 항상 현재 뷰나 명령 텍스트에서 최근에 바꾼 열의 이름을 반영합니다.

ColumnOrdinal

열의 서수입니다. 0부터 시작합니다. SQL Server Compact에서는 책갈피를 지원하지 않습니다.

ColumnSize

열의 값에 사용할 수 있는 최대 길이입니다. 고정 길이 데이터 형식을 사용하는 열의 경우, 최대 길이는 데이터 형식의 크기입니다.

NumericPrecision

ProviderType이 숫자 데이터 형식인 경우, 열의 최대 정밀도입니다. 정밀도는 열의 정의에 따라 다릅니다. ProviderType이 숫자 데이터 형식이 아닌 경우에는 null 값입니다.

NumericScale

ProviderType이 DBTYPE_DECIMAL 또는 DBTYPE_NUMERIC인 경우 소수점 오른쪽의 자릿수이고, 그렇지 않으면 이 값은 null입니다.

IsUnique

true이면 BaseTableName에서 반환되는 테이블인 기본 테이블의 두 행이 이 열에 같은 값을 가질 수 없습니다. 열이 자체적으로 키를 구성하거나 이 열에만 적용되는 UNIQUE 형식의 제약 조건이 있으면 IsUnique는 true가 됩니다. false이면 기본 테이블의 해당 열은 중복 값을 포함할 수 있습니다. 이 열의 기본값은 false입니다.

IsKey

true이면 해당 열은 함께 사용하여 행을 고유하게 식별할 수 있는 행 집합에 있는 열 중 하나입니다. true로 설정된 IsKey를 사용하는 열 집합은 행 집합의 행을 고유하게 식별합니다. 이 열 집합이 최소 열 집합일 필요는 없습니다. 이 열 집합은 기본 테이블 기본 키, 고유 제약 조건 또는 고유 인덱스에서 생성될 수 있습니다. false이면 해당 열은 행을 고유하게 식별하는 데 필요하지 않습니다.

BaseColumnName

데이터 저장소의 열 이름입니다. 기본 열 이름을 확인할 수 없거나, 행 집합 열이 파생되었지만 데이터 저장소의 열과 일치하지 않는 경우 이 이름은 null 값입니다. 이 열의 기본값은 null입니다.

BaseTableName

열을 포함하는 데이터 저장소의 테이블 이름입니다. 기본 테이블 이름을 확인할 수 없으면 이름은 null 값입니다. 이 열의 기본값은 null입니다.

DataType

열의 .NET Framework 형식에 매핑합니다.

AllowDBNull

소비자가 열을 null 값으로 설정할 수 있거나, 소비자가 열을 null 값으로 설정할 수 있는지 여부를 공급자가 확인할 수 없는 경우 설정합니다. 그렇지 않으면 설정하지 않습니다. 열을 null 값으로 설정할 수 없지만, 열에 null 값이 포함될 수는 있습니다.

ProviderType

열 데이터 형식의 표시기입니다. 이 열은 null 값을 포함할 수 없습니다.

IsAutoIncrement

true이면 열은 일정한 증분값으로 새 행에 값을 할당합니다. false이면 열은 일정한 증분값으로 새 행에 값을 할당하지 않습니다. 이 열의 기본값은 false입니다.

IsRowVersion

열이 쓰기 불가능한 영구 행 식별자를 포함하며 행을 식별할 때를 제외하고는 의미 있는 값을 갖지 않는 경우에 설정합니다.

IsLong

매우 긴 데이터가 들어 있는 BLOB(Binary Long Object)가 열에 포함된 경우에 설정합니다.

IsReadOnly

true이면 열을 수정할 수 없고, false이면 열을 수정할 수 없습니다.

표시: