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
public DataTable GetSchemaTable ()
public override function GetSchemaTable () : 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

列的名称。此名称可以不唯一。如果不能确定此名称,则会返回空值。此名称始终反映最近对当前视图或命令文本中的列进行的重命名。

ColumnOrdinal

列的序号。序号从零开始。SQL Server Compact Edition 不支持书签。

ColumnSize

列中值的最大可能长度。对于采用固定长度数据类型的列,最大长度为该数据类型的大小。

NumericPrecision

如果 ProviderType 是数值数据类型,则它是列的最大精度。精度取决于列的定义。如果 ProviderType 不是数值数据类型,则它是空值。

NumericScale

如果 ProviderType 是 DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,则为小数点右侧的位数。否则,它为空值。

IsUnique

如果为 true,则基表(BaseTableName 中返回的表)中的任何两行在该列中都不能有相同的值。如果此列本身为一个键,或如果有一个仅应用于该列的 UNIQUE 类型约束,那么 IsUnique 一定为 true。如果为 false,则在基表中,该列可以包含重复值。该列的默认值为 false

IsKey

如果为 true,则该列是行集合中的一组列之一,这些列加在一起可唯一地标识该行。IsKey 设置为 true 的列集必须唯一标识行集中的行。不要求此列集是最小列集。这组列可以从基表主键、唯一约束或唯一索引生成。如果为 false,则唯一地标识该行时不需要该列。

BaseColumnName

数据存储区中列的名称。如果无法确定基列名称,或者如果行集合列是从数据存储区中的某列派生的但却与该列不相同,则该名称为空值。该列的默认值为空值。

BaseTableName

包含该列的数据存储区中的表的名称。如果不能确定基表名,则该名称为空值。该列的默认值为空值。

DataType

映射到该列的 .NET Framework 类型。

AllowDBNull

如果使用者可以将该列设置为空值,或者如果提供程序不能确定使用者是否可以将该列设置为空值,则设置该值。否则,不设置该值。即使列无法设置为空值,它仍可能包含空值。

ProviderType

列的数据类型的指示符。该列不能包含空值。

IsAutoIncrement

如果为 true,则该列以固定的增量向新行赋值。如果为 false,则该列不以固定的增量向新行赋值。该列的默认值为 false

IsRowVersion

如果列包含无法向其写入的持久性行标识符,并且除了标识行外没有其他有意义的值,则应设置该值。

IsLong

如果列包含二进制长对象 (BLOB)(它包含非常长的数据),则设置该值。

IsReadOnly

如果为 true,便可以修改此列。如果为 false,则不可修改此列。

平台

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Windows Vista、Microsoft Windows XP SP2 和 Windows Server 2003 SP1 支持 Microsoft .NET Framework 3.0。

版本信息

.NET Framework

受以下版本支持:3.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

SqlCeDataReader 类
SqlCeDataReader 成员
System.Data.SqlServerCe 命名空间