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 の場合、列を変更できません。 |