SqlCeDataReader.GetSchemaTable 메서드
SqlCeDataReader의 열 메타데이터를 설명하는 DataTable을 반환합니다.
네임스페이스: System.Data.SqlServerCe
어셈블리: System.Data.SqlServerCe(System.Data.SqlServerCe.dll)
구문
‘선언
Public Overrides Function GetSchemaTable As DataTable
‘사용 방법
Dim instance As SqlCeDataReader
Dim returnValue As DataTable
returnValue = instance.GetSchemaTable()
public override DataTable GetSchemaTable()
public:
virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable
override GetSchemaTable : unit -> DataTable
public override function GetSchemaTable() : DataTable
반환 값
유형: System.Data.DataTable
열 메타데이터를 설명하는 DataTable을 반환합니다.
구현
예외
예외 | 조건 |
---|---|
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이면 열을 수정할 수 없습니다. |