OleDbDataReader.GetSchemaTable メソッド

定義

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

public:
 override System::Data::DataTable ^ GetSchemaTable();
public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable? GetSchemaTable ();
public System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Public Function GetSchemaTable () As DataTable

戻り値

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

実装

例外

OleDbDataReader が閉じています。

注釈

メソッドは GetSchemaTable OLE DB IColumnsRowset::GetColumnsRowset メソッドにマップされ、各列に関するメタデータを次の順序で返します。

DataReader 列 OLE DB 列 ID [説明]
ColumnName DBCOLUMN_NAME 列の名前。これは一意ではない可能性があります。 キャプションが確認できない場合は、NULL 値が返されます。 この名前には常に現在のビューまたはコマンド テキストで直前に変更された列の名前が反映されます。
ColumnOrdinal DBCOLUMN_NUMBER 列の 0 から始まる序数。 この列に 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 プロバイダーは、列に非常に長いデータを含む Binary Long オブジェクト (BLOB) が含まれている場合にDBCOLUMNFLAGS_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 プロバイダーは、列に書き込むことができない永続的な行識別子が含まれ、行を識別する以外に意味のある値がない場合にDBCOLUMNFLAGS_ISROWIDを設定します。
IsUnique DBCOLUMN_ISUNIQUE VARIANT_TRUE: BaseTableName で返されるテーブルのベース テーブル内に、この列で同じ値を持つ 2 つの行はありません。 IsUnique は、列が単独でキーを表している場合、またはこの列にのみ適用される UNIQUE 型の制約がある場合に、VARIANT_TRUEすることが保証されます。

VARIANT_FALSE: 列には、ベース テーブルに重複する値を含めることができます。 この列の既定値はVARIANT_FALSEです。
IsKey DBCOLUMN_KEYCOLUMN VARIANT_TRUE: 列は、行セット内の一連の列の 1 つであり、一緒に行を一意に識別します。 IsKey が VARIANT_TRUE に設定されている列のセットは、行セット内の行を一意に識別する必要があります。 この列のセットは列の最小セットである必要はありません。 この列のセットは、ベース テーブルの主キー、一意の制約、または一意のインデックスから生成できます。

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 値です。

注意

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

適用対象

こちらもご覧ください