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。
實作
例外狀況
例外狀況 | 條件 |
---|---|
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,則表示不可修改資料行。 |