次の方法で共有


SqlDataReader.GetSchemaTable メソッド

定義

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

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

戻り値

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

実装

例外

SqlDataReader が閉じています。

注釈

メソッドは GetSchemaTable 、各列に関する次のメタデータを返します。

DataReader 列 [説明]
AllowDBNull コンシューマーが列を null 値に設定できるかどうか、またはコンシューマーが列を null 値に設定できるかどうかをプロバイダーが判断できない場合に設定します。 それ以外の場合は、設定しないでください。 列を NULL 値に設定できない場合でも、列に NULL 値が含まれる場合があります。
BaseCatalogName 列を含むデータ ストア内のカタログの名前です。 ベース カタログ名を特定できない場合は NULL。 この列の既定値は null 値です。
BaseColumnName データ ストア内での列名。 別名が使用された場合、これは ColumnName 列に返される列名とは異なる場合があります。 ベース列名を特定できない場合、または行セット列がデータ ストア内の列から派生しているが、同一でない場合は null 値。 この列の既定値は null 値です。
BaseSchemaName 列を含むデータ ストア内のスキーマの名前です。 ベース スキーマ名が確認できない場合は、NULL 値です。 この列の既定値は null 値です。
BaseServerName Microsoft のインスタンスの名前SQL Server によって使用されますSqlDataReader
BaseTableName 列を含むデータ ストア内のテーブルまたはビューの名前です。 ベースのテーブル名が確認できない場合は、NULL 値です。 この列の既定値は null 値です。
ColumnName 列の名前。これは一意ではない可能性があります。 キャプションが確認できない場合は、NULL 値が返されます。 この名前には常に現在のビューまたはコマンド テキストで直前に変更された列の名前が反映されます。
ColumnOrdinal 列の 0 から始まる序数。 この列に NULL 値を含めることはできません。
ColumnSize 列に格納できる値の最大の長さ。 固定長データ型を使用する列の場合、これはデータ型のサイズです。 varchar(MAX)、、および varbinary(MAX) SQL Server データベースに格納されている列の場合nvarchar(MAX)、最大サイズは 2 GB です。 これらの列がファイルとして格納され、アクセスされる場合、ファイル システムによって最大サイズの制限が課されます。 この値は、接続文字列でType System Versionキーワード (keyword)を使用すると変更されます。 新しい型の場合、これらはダウンレベル型として表されます。 MAX データ型は、 の場合は通常の 4k、の nvarchar 場合は 8000 を varchar返します。 詳細については、「 Transact-SQL リファレンス」を参照してください
DataTypeName 指定した列のデータ型を表す文字列を返します。
IsAliased true: 列名はエイリアスです。

false: 列名はエイリアスではありません。
IsAutoIncrement true: 列は、固定増分で新しい行に値を割り当てます。

false: 列は、固定増分で新しい行に値を割り当てません。 この列の既定値は false です。
IsColumnSet true: 列は、列セットのメンバーであるスパース列です。
IsExpression true: 列は式です。

false: 列が式ではありません。
IsHidden true: 列は非表示です。

false: 列は非表示ではありません。
IsIdentity true: 列は ID 列です。

false: 列が ID 列ではありません。
IsKey true: 列は、一緒に行を一意に識別する、行セット内の列のセットの 1 つです。 IsKey に設定された true の列のセットは、行セット内の行を一意に識別する必要があります。 この列のセットは列の最小セットである必要はありません。 この列のセットは、ベース テーブルの主キー、一意の制約、または一意のインデックスから生成できます。

false: 行を一意に識別するために列は必要ありません。
IsLong true: 列には、非常に長いデータを含むバイナリ長オブジェクト (BLOB) が含まれています。 非常に長いデータの定義は、プロバイダー固有です。

false: 列に、非常に長いデータを含むバイナリ長オブジェクト (BLOB) が含まれていません。
IsReadOnly true: 列を変更できません。

false: 列は変更できます。
IsRowVersion true: 列に書き込むことができない永続的な行識別子が含まれており、行を識別する以外に意味のある値はありません。

false: 列に書き込むことができない永続的な行識別子は含まれず、行を識別する以外に意味のある値はありません。
IsUnique true: 列の型 timestampは です。

false: 列が 型 timestampではありません。
NonVersionedProviderType 接続文字列で現在指定されているType System Version列の型。 戻り値は 列挙体から取得されます SqlDbType
NumericPrecision が数値データ型の場合 ProviderType 、これは列の最大有効桁数です。 有効桁数は、列の定義によって異なります。 が数値データ型でない場合 ProviderType 、これは 255 です。
NumericScale が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合 ProviderType は、小数点の右側の桁数。 それ以外の場合、これは 255 です。
ProviderSpecificDataType 接続文字列のキーワード (keyword)に基づいて、列のType System Versionプロバイダー固有のデータ型を返します。
ProviderType 列のデータ型のインジケーターです。 列のデータ型が行ごとに異なる場合、これは Object である必要があります。 この列に NULL 値を含めることはできません。
UdtAssemblyQualifiedName 列がユーザー定義型 (UDT) の場合、これは UDT のアセンブリの修飾名です AssemblyQualifiedName。 列が UDT でない場合、これは null です。
XmlSchemaCollectionDatabase 行に XML 列に関する情報が含まれている場合は、この XML インスタンスのスキーマ コレクションがあるデータベースの名前。 コレクションが null 現在のデータベース内で定義されている場合、この値は (Nothing Visual Basic では ) です。 スキーマ コレクションがない場合も null になります。その場合、 XmlSchemaCollectionName 列と XmlSchemaCollectionOwningSchema 列も null になります。
XmlSchemaCollectionName 行に XML 列に関する情報が含まれている場合は、この XML インスタンスのスキーマ コレクションの名前。 関連付けられたスキーマ コレクションがない場合、この値は null (Nothing Visual Basic では ) です。 値が null の場合、 XmlSchemaCollectionDatabase 列と XmlSchemaCollectionOwningSchema 列も null になります。
XmlSchemaCollectionOwningSchema 行に XML 列に関する情報が含まれている場合、この XML インスタンスのスキーマ コレクションがある所有リレーショナル スキーマ。 コレクションが null 現在のデータベース内で定義されている場合、この値は (Nothing Visual Basic では ) です。 スキーマ コレクションがない場合も null になります。その場合、 XmlSchemaCollectionDatabase 列と XmlSchemaCollectionName 列も null になります。

注意

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

適用対象

こちらもご覧ください