次の方法で共有


OleDbDataReader.GetSchemaTable メソッド

OleDbDataReader の列メタデータを記述する DataTable を返します。

Public Overridable Function GetSchemaTable() As DataTable Implements _   IDataReader.GetSchemaTable
[C#]
public virtual DataTable GetSchemaTable();
[C++]
public: virtual DataTable* GetSchemaTable();
[JScript]
public function GetSchemaTable() : DataTable;

戻り値

列メタデータを記述する DataTable

実装

IDataReader.GetSchemaTable

例外

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

解説

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

DataReader 列 OLE DB 列 ID 説明
ColumnName DBCOLUMN_NAME 列名。列名は一意でない場合もあります。判断できない場合は、null 値が返されます。この名前は、現在のビュー内またはコマンド テキスト内の列に対して指定された最新の名前を常に反映しています。
ColumnOrdinal DBCOLUMN_NUMBER 列の序数。行のブックマーク列 (ある場合) はゼロになります。その他の列は 1 から順に番号が付けられます。この列に null 値を含めることはできません。
ColumnSize DBCOLUMN_COLUMNSIZE 列の値に許容される最大長。固定長データ型を使用する列では、そのデータ型のサイズになります。
NumericPrecision DBCOLUMN_PRECISION DbType が数値データ型の場合は、列の最大精度になります。DBTYPE_DECIMAL または DBTYPE_NUMERIC データ型の列の精度は、列の定義によって決まります。DbType が数値データ型以外の場合は、null 値になります。
NumericScale DBCOLUMN_SCALE DbType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点の右側の桁数になります。それ以外の場合は、null 値になります。
DataType なし 列の .NET Framework に合う型に割り当てます。
ProviderType DBCOLUMN_TYPE 列のデータ型のインジケータ。列のデータ型が行によって異なる場合は、DBTYPE_VARIANT である必要があります。この列に null 値を含めることはできません。
IsLong DBCOLUMNFLAGS_ISLONG 非常に長いデータが含まれる BLOB (Binary Long Object) が列に格納されている場合は、プロバイダが BCOLUMNFLAGS_ISLONG を設定します。非常に長いデータの定義は、プロバイダによって異なります。このフラグの設定は、データ型の、PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。
AllowDBNull DBCOLUMNFLAGS_ISNULLABLE コンシューマが列を null 値に設定できる場合や、コンシューマが列を null 値に設定できるかどうかをプロバイダが判断できない場合は、プロバイダが DBCOLUMNFLAGS_ISNULLABLE を設定します。列を null 値に設定できない場合でも、null 値が含まれている可能性があります。
IsReadOnly DBCOLUMNFLAGS_WRITE 列を変更できない場合は true 。それ以外の場合は false 。プロバイダが DBCOLUMNFLAGS_WRITE フラグまたは DBCOLUMNFLAGS_WRITEUNKNOWN フラグを設定している場合、その列は書き込み可能と見なされます。
IsRowVersion DBCOLUMNFLAGS_ISROWID 書き込み禁止で、行の識別以外に意味のない値を持つ永続的な行 ID が列に格納されている場合は、プロバイダが DBCOLUMNFLAGS_ISROWID を設定します。
IsUnique DBCOLUMN_ISUNIQUE VARIANT_TRUE の場合は、この列では、ベース テーブル (BaseTableName で返されるテーブル) 内で行に重複する値を格納できないことを示します。列自体がキーを構成している場合や、その列だけに適用される UNIQUE 型の制約がある場合は、IsUnique は必ず VARIANT_TRUE になります。VARIANT_FALSE の場合は、この列に、ベース テーブル内で重複する値を格納できることを示します。この列の既定値は、VARIANT_FALSE です。
IsKey DBCOLUMN_KEYCOLUMN VARIANT_TRUE の場合は、列が、行セット内の行を一意に識別するために組み合わされる、列のセットの 1 つであることを示します。IsKey が VARIANT_TRUE に設定された列のセットは、行セット内の行を一意に識別する必要があります。この列のセットが列の最小セットである必要はありません。この列のセットは、ベース テーブルの主キー、UNIQUE 制約、または一意のインデックスから生成されることもあります。VARIANT_FALSE の場合は、列が、行を一意に識別する必要がないことを示します。
IsAutoIncrement DBCOLUMN_ISAUTOINCREMENT VARIANT_TRUE の場合は、列が、新しい行に固定インクリメントで値を割り当てることを示します。VARIANT_FALSE の場合は、列が、新しい行に固定インクリメントで値を割り当てないことを示します。この列の既定値は、VARIANT_FALSE です。
BaseSchemaName DBCOLUMN_BASESCHEMANAME 列を格納している、データ ストア内のスキーマの名前。基本スキーマ名を判断できない場合は null 値。この列の既定値は null 値です。
BaseCatalogName DBCOLUMN_BASECATALOGNAME 列を格納している、データ ストア内のカタログ名。ベース カタログ名を判断できない場合は null 値。この列の既定値は null 値です。
BaseTableName DBCOLUMN_BASETABLENAME 列を格納している、データ ストア内のテーブルまたはビューの名前。ベース テーブル名を判断できない場合は null 値。この列の既定値は null 値です。
BaseColumnName DBCOLUMN_BASECOLUMNNAME データ ストア内での列名。別名が使用された場合は、ColumnName 列に返される列名とは異なることがあります。基本列名を判断できない場合や、行セット列であると判明したがデータ ストア内の列と一致しない場合は、null 値。この列の既定値は null 値です。

メモ   メタデータの列が正しい情報を確実に返すようにするには、 behavior パラメータを KeyInfo に設定して ExecuteReader を呼び出す必要があります。それ以外の場合、スキーマ テーブルのいくつかの列は、既定のデータ、null、または正しくないデータを返します。

必要条件

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

参照

OleDbDataReader クラス | OleDbDataReader メンバ | System.Data.OleDb 名前空間