OracleDataReader.GetSchemaTable 方法

定义

返回一个 DataTable,它描述 OracleDataReader 的列元数据。

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

实现

注解

方法 GetSchemaTable 按以下顺序返回有关每个列的元数据:

DataReader 列 说明
ColumnName 列的名称;这可能不是唯一的。 如果无法确定列名,则返回 null 值。 此名称始终反映当前视图或命令文本中列的最新命名。
ColumnOrdinal 从零开始的列序号。 此列不能包含 NULL 值。
ColumnSize 列中值的最大可能长度。 对于使用固定长度数据类型的列,这是数据类型的大小。
NumericPrecision 如果 DbType 是数值数据类型,则表示列的最大精度。 精度取决于列的定义。 FloatDouble Oracle 中的数据类型是二进制精度。
NumericScale 如果 DbType 是数值数据类型,则为小数点右侧的位数。 FloatDouble Oracle 中的数据类型是二进制缩放。
数据类型 映射到 的公共语言运行时类型 DbType
IsLong true 如果列包含包含很长数据的二进制长对象 (BLOB) 。
AllowDBNull true 如果使用者可以将列设置为 null 值,则为 ;否则为 false。 即使无法将列设置为 NULL 值,列也可以包含 NULL 值。
IsUnique true:基表中的两行(在 中返回的 BaseTableName 表)不能在此列中具有相同的值。 如果列本身构成键,或者存在仅适用于此列的 UNIQUE 类型的约束,则保证 trueIsUnique 为 。 false:该列可以在基表中包含重复值。 此列的默认值为 false。
IsKey true:列是行集中唯一标识行的一组列之一。 IsKey 设置为 true 的列集必须唯一标识行集中的行。 不要求这组列是最小组列。 此组列可能从一个基表主键、唯一约束或唯一索引生成。 false:不需要列来唯一标识行。
BaseTableName 包含该列的数据存储区中的表或视图的名称。 如果无法确定基表名称,则为 NULL 值。 此列的默认值为 null 值。
BaseColumnName 数据存储区中列的名称。 如果使用别名,这可能不同于 ColumnName 列中返回的列名。 如果无法确定基列名称,或者行集列派生(但不完全相同)数据存储中的列,则为 null 值。 此列的默认值为 null 值。
BaseSchemaName 包含该列的数据存储区中架构的名称。 如果无法确定基本架构名称,则为 NULL 值。 此列的默认值为 null 值。

结果集中的每一列返回一行。

注意

若要确保元数据列返回正确的信息,必须调用 ExecuteReader 并将 behavior 参数设置为 KeyInfo。 否则,架构表中的某些列可能会返回默认、null 或不正确的数据。

适用于

另请参阅