Share via


SqlCeDataReader.GetSchemaTable 方法

傳回 DataTable,以描述 SqlCeDataReader 的資料行中繼資料。

命名空間:  System.Data.SqlServerCe
組件:  System.Data.SqlServerCe (在 System.Data.SqlServerCe.dll 中)

語法

'宣告
Public Overrides Function GetSchemaTable As DataTable
'用途
Dim instance As SqlCeDataReader
Dim returnValue As DataTable

returnValue = instance.GetSchemaTable()
public override DataTable GetSchemaTable()
public:
virtual DataTable^ GetSchemaTable() override
abstract GetSchemaTable : unit -> DataTable 
override GetSchemaTable : unit -> DataTable 
public override function GetSchemaTable() : DataTable

傳回值

型別:System.Data.DataTable
描述資料行中繼資料的 DataTable

實作

IDataReader.GetSchemaTable()

例外狀況

例外狀況 條件
InvalidOperationException

作業無效。SqlCeDataReader 可能位在結果集的最後一個資料列之後。

備註

如果 SqlCeDataReader 正從一個以上的基底資料表讀取資料行,SqlCeDataReader 就不會使用 IsKey 值填入結構描述資料表。這個行為與您有 SELECT 查詢時的狀況相同:

SELECT FirstName, LastName, 1+2 FROM Employees  

查詢正從兩個不同的資料表讀取資料行,Northwind 資料庫中的 Employees 資料表以及為 1+2 建立的暫存資料表。

GetSchemaTable 方法會對應到 OLE DB IColumnsRowset::GetColumnsRowset 方法,並且使用下列順序來傳回有關每個資料行的中繼資料:

結構描述資料表資料行

說明

ColumnName

資料行名稱。這不一定會是唯一名稱。如果無法判斷名稱,則會傳回 null 值。這個名稱一定會反映目前檢視或命令文字中資料行的最新重新命名。

ColumnOrdinal

資料行的序數。序數從零開始。SQL Server Compact 不支援書籤。

ColumnSize

資料欄中值的可能長度上限。對於使用固定長度資料類型的資料行而言,最大長度即為資料類型的大小。

NumericPrecision

如果 ProviderType 是數字資料類型,則為資料行的最大精確度。精確度取決於資料行的定義。如果 ProviderType 不是數字資料類型,則為 null 值。

NumericScale

如果 ProviderType 是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,則為小數點右邊數字的數目。否則為 null 值。

IsUnique

如果為 true,則在基底資料表 (BaseTableName 中傳回的資料表) 中,不能有任何兩個資料列在這個資料行中有相同的值。如果資料行本身就構成索引鍵,或是有只套用到這個資料行的 UNIQUE 類型條件約束,則保證 IsUnique 一定是 true。如果為 false,則表示資料行在基底資料表中可以包含重複的值。這個資料行的預設值為 false。

IsKey

如果為 true,則表示此資料行是資料列集中一組資料行的其中一個,將其放在一起可唯一識別該資料列。IsKey 設定為 true 的資料行集必須在資料列集中唯一識別資料列。這個資料行集並不需要為最小資料行集。這個資料行集可以產生自基底資料表主索引鍵、唯一條件約束或唯一索引。如果為 false,則表示不需要此資料行,也可唯一識別資料列。

BaseColumnName

在資料存放區中的資料行名稱。如果無法判斷基底資料行名稱,或是已衍生資料列集資料行,但卻和資料存放區中的資料行不同,則名稱為 null 值。這個資料行的預設值為 null。

BaseTableName

在資料存放區中包含資料行的資料表名稱。如果無法判斷基底資料表名稱,則名稱為 null 值。這個資料行的預設值為 null。

DataType

對應至資料行的 .NET Framework 類型。

AllowDBNull

如果消費者可將資料行設為 Null 值,或如果提供者 (Provider) 無法判斷消費者是否可以將資料行設為 Null 值,便會設定此資料行。否則,不設定。即使資料行無法設定為 null 值,它還是可能包含 null 值。

ProviderType

資料行之資料類型的指標。這個資料行不能包含 null 值。

IsAutoIncrement

如果為 true,則表示資料行會以固定增量將值指派到新的資料列。如果為 false,則表示資料行不會以固定增量將值指派到新的資料列。這個資料行的預設值為 false。

IsRowVersion

設定資料行是否包含無法寫入的永續性 (Persistent) 資料列識別項,而且是否不具有除了識別資料列以外任何有意義的值。

IsLong

設定資料行是否包含過長資料的「二進位大型物件」(Binary Long Object,BLOB)。

IsReadOnly

如果為 true,則表示可以修改資料行。如果為 false,則表示不可修改資料行。

請參閱

參考

SqlCeDataReader 類別

System.Data.SqlServerCe 命名空間