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

実装

IDataReader. . :: . .GetSchemaTable() () () ()

例外

例外 条件
InvalidOperationException

操作が有効ではありません。SqlCeDataReader が、結果セットの最後の行よりも後に置かれている可能性があります。

説明

SqlCeDataReader が複数のベース テーブルから列を読み取っている場合、SqlCeDataReader は、スキーマ テーブルに IsKey 値を格納しません。この動作は、次の SELECT クエリを実行した場合の動作に似ています。

SELECT FirstName, LastName, 1+2 FROM Employees  

このクエリでは、Northwind データベースの Employees と、1+2 のために作成された一時テーブルの 2 つのテーブルから列を読み取っています。

GetSchemaTable メソッドは、OLE DB IColumnsRowset::GetColumnsRowset メソッドに割り当てられ、各列のメタデータを次の順序で返します。

スキーマ テーブル列

説明

ColumnName

列の名前。この名前は、一意でない場合があります。名前を判断できない場合は、null 値が返されます。この名前は、現在のビュー内またはコマンド テキスト内の列に対して指定された最新の名前を常に反映しています。

ColumnOrdinal

列の序数。序数は 0 から始まります。SQL Server Compact 3.5 では、ブックマークはサポートされていません。

ColumnSize

列の値に許容される最大長。固定長のデータ型を使用する列では、最大長はデータ型のサイズです。

NumericPrecision

ProviderType が数値データ型の場合は、列の最大有効桁数。有効桁数は列の定義によって異なります。ProviderType が数値データ型以外の場合は、null 値になります。

NumericScale

ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点の右側の桁数。それ以外の場合は、null 値になります。

IsUnique

true の場合は、この列では、ベース テーブル (BaseTableName で返されるテーブル) 内で 2 つの行に重複する値を格納できないことを示します。列自体がキーを構成している場合や、その列のみに適用される UNIQUE 型の制約がある場合は、IsUnique は必ず true になります。false の場合は、ベース テーブル内の列に重複する値を格納できます。この列の既定値は false です。

IsKey

true の場合、この列が、行セット内の、行を一意に識別する列のセットにあります。IsKey が true に設定された列のセットは、行セット内の行を一意に識別する必要があります。この列のセットが列の最小セットである必要はありません。この列のセットは、ベース テーブルの主キー、UNIQUE 制約、または一意のインデックスから生成されることもあります。false の場合は、列が、行を一意に識別する必要がないことを示します。

BaseColumnName

データ ストア内の列名。基本列名を判断できない場合や、取得された行セット列がデータ ストア内の列と一致しない場合は、null 値です。この列の既定値は null 値です。

BaseTableName

列を格納している、データ ストア内のテーブル名。ベース テーブル名を判断できない場合は null 値。この列の既定値は null 値です。

DataType

.NET Framework 型の列に割り当てます。

AllowDBNull

コンシューマが列に null 値を設定できる場合、またはコンシューマが列に null 値を設定できるかどうかをプロバイダが判断できない場合に設定します。それ以外の場合は、設定されません。列を null 値に設定できない場合でも、null 値が含まれている可能性があります。

ProviderType

列のデータ型のインジケータ。この列に null 値を含めることはできません。

IsAutoIncrement

true の場合は、列が、新しい行に固定インクリメントで値を割り当てることを示します。false の場合は、列が、新しい行に固定インクリメントで値を割り当てないことを示します。この列の既定値は false です。

IsRowVersion

書き込み禁止で、行の識別以外に意味のない値を持つ永続的な行 ID が列に格納されている場合に、設定されます。

IsLong

非常に長いデータが含まれる BLOB (Binary Long Object) が列に格納されている場合に設定されます。

IsReadOnly

true の場合、列を変更できます。false の場合、列を変更できません。

関連項目

参照

SqlCeDataReader クラス

SqlCeDataReader メンバー

System.Data.SqlServerCe 名前空間