次の方法で共有


IDataReader.GetSchemaTable メソッド

IDataReader の列メタデータを説明する DataTable を返します。

Function GetSchemaTable() As DataTable
[C#]
DataTable GetSchemaTable();
[C++]
DataTable* GetSchemaTable();
[JScript]
function GetSchemaTable() : DataTable;

戻り値

列メタデータを説明する DataTable

例外

例外の種類 条件
InvalidOperationException IDataReader が閉じています。

解説

.NET Framework Data Provider for OLE DB の GetSchemaTable メソッドの実装は OLE DB IColumnsRowset::GetColumnsRowset メソッドに割り当てられるのに対して、.NET Framework Data Provider for SQL Server での実装は OLE DB プロバイダ層を使用しません。 GetSchemaTable は、各列のメタデータを次の順序で返します。

IDataReader Column 説明
ColumnName 列の名前。一意ではない場合があります。判断できない場合は、null 値が返されます。この名前は常に、現在のビューの列またはコマンド テキストの、最新の名前変更を反映したものになります。
ColumnOrdinal 列の序数。行にブックマーク列がある場合、これはゼロになります。その他の列は 1 から番号が付けられます。この列に null 値を含めることはできません。
ColumnSize 列の値に許容される最大長。固定長データ型を使用する列では、そのデータ型のサイズです。
NumericPrecision ProviderType が数値データ型の場合は、列の最大有効桁数です。有効桁数は列の定義によって異なります。ProviderType が数値データ型ではない場合は null 値です。
NumericScale ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点以下の桁数です。それ以外の場合は、null 値です。
DataType 列の .NET Framework に合う型に割り当てます。
ProviderType 列のデータ型のインジケータ。行によって列のデータ型が異なる場合は Object である必要があります。この列に null 値を含めることはできません。
IsLong 長いデータが格納された BLOB (Binary Long Object) が列に格納されている場合に、設定します。長いデータの定義は、プロバイダによって異なります。このフラグの設定は、データ型の PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。
AllowDBNull コンシューマがこの列を null 値に設定できる場合、またはコンシューマがこの列を null 値に設定できるかどうかをプロバイダが判断できない場合に設定します。それ以外の場合は、設定しません。null 値に設定できない場合でも、列には null 値が格納されていることがあります。
IsReadOnly 列を変更できない場合は true 。それ以外の場合は false
IsRowVersion 書き込むことができない永続的な行識別子がこの列に格納されていて、行を識別する以外に意味を持つ値が格納されていない場合に設定します。
IsUnique ベース テーブル (BaseTableName で返されたテーブル) 内の複数の行でこの列に同じ値を格納できない場合は true 。この列が単独でキーを構成するか、この列だけに適用される UNIQUE 型の制約がある場合は IsUnique が true であることが保証されます。ベース テーブルのこの列に、重複する値を格納できる場合は false 。この列の既定値は false です。
IsKeyColumn この列が、行セット内の、行を一意に識別する列のセットにある場合は true 。IsKeyColumn が true に設定されている列のセットは、行セット内の行を一意に識別する必要があります。この列のセットが列の最小セットである必要はありません。この列のセットはベース テーブルの主キー、UNIQUE 制約、または一意のインデックスから生成されます。この列が行を一意に識別する必要がない場合は false
IsAutoIncrement VARIANT_TRUE: この列では、新しい行に固定インクリメントの値が割り当てられます。VARIANT_FALSE: この列では、新しい行に固定インクリメントの値が割り当てられません。この列の既定値は VARIANT_FALSE です。
BaseSchemaName 列を格納しているデータ ストア内のスキーマの名前。基本スキーマ名を確認できない場合は null 値。この列の既定値は null 値です。
BaseCatalogName 列を格納しているデータ ストア内のカタログ名。ベース カタログ名を確認できない場合は null 値。この列の既定値は null 値です。
BaseTableName 列を格納しているデータ ストア内のテーブルまたはビューの名前。ベース テーブル名を確認できない場合は null 値。この列の既定値は null 値です。
BaseColumnName データ ストア内の列名。別名が使用された場合、ColumnName 列に返された列名とは異なることがあります。基本列名を確認できない場合や、データ ストアの列とは異なる行セット列が派生した場合は、null 値。この列の既定値は null 値です。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

IDataReader インターフェイス | IDataReader メンバ | System.Data 名前空間