次の方法で共有


SqlCeDataReader.GetSchemaTable メソッド

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

SqlCeDataReader の列メタデータを記述する 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 操作が有効ではありません。 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 CE では、ブックマークはサポートされていません。
ColumnSize 列の値に許容される最大長。固定長のデータ型を使用する列では、最大長はデータ型のサイズです。
NumericPrecision ProviderType が数値データ型の場合は、列の最大有効桁数。有効桁数は列の定義によって異なります。ProviderType が数値データ型以外の場合は、null 値になります。
NumericScale ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合は、小数点の右側の桁数。それ以外の場合は、null 値になります。
IsUnique true の場合は、この列では、ベース テーブル (BaseTableName で返されるテーブル) 内で行に重複する値を格納できないことを示します。列自体がキーを構成している場合や、その列のみに適用される UNIQUE 型の制約がある場合は、IsUnique は必ず true になります。 false の場合は、列が、ベース テーブル内で重複する値を格納できることを示します。この列の既定値は false です。
IsKey true の場合は、列が、行セット内の行を一意に識別するために組み合わされる、列のセットの 1 つであることを示します。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

必要条件

プラットフォーム: .NET Compact Framework - Windows CE .NET

.NET Framework セキュリティ:

参照

SqlCeDataReader クラス | SqlCeDataReader メンバ | System.Data.SqlServerCe 名前空間