SqlDataReader.GetSchemaTable 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个描述列元数据的 DataTable.SqlDataReader
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
返回
描述列元数据的 A DataTable 。
实现
例外
注解
该方法 GetSchemaTable 返回有关每个列的以下元数据:
| DataReader 列 | Description |
|---|---|
| AllowDBNull | 如果使用者可以将列设置为 null 值,或者提供程序无法确定使用者是否可以将列设置为 null 值,则设置该列。 否则,不设置。 即使列不能设置为 null 值,列也可能包含 null 值。 |
| BaseCatalogName | 包含列的数据存储区中的目录的名称。 如果无法确定基目录名称,则为 NULL。 此列的默认值为 null 值。 |
| BaseColumnName | 数据存储中列的名称。 如果使用别名,这可能不同于 ColumnName 列中返回的列名。 如果无法确定基列名,或者行集列派生但与数据存储中的列不同,则为 null 值。 此列的默认值为 null 值。 |
| BaseSchemaName | 包含列的数据存储中的架构的名称。 如果无法确定基本架构名称,则为 null 值。 此列的默认值为 null 值。 |
| BaseServerName | SqlDataReader使用的Microsoft SQL Server实例的名称。 |
| BaseTableName | 包含列的数据存储中的表或视图的名称。 如果无法确定基表名称,则为 null 值。 此列的默认值为 null 值。 |
| ColumnName | 列的名称;这可能不是唯一的。 如果无法确定,则返回 null 值。 此名称始终反映当前视图或命令文本中列的最新重命名。 |
| ColumnOrdinal | 列的从零开始的序号。 此列不能包含 null 值。 |
| 列大小 | 列中值的最大可能长度。 对于使用固定长度数据类型的列,这是数据类型的大小。 对于存储在 SQL Server 数据库中的 nvarchar(MAX)、varchar(MAX) 和 varbinary(MAX) 列,最大大小为 2GB。 如果以文件的形式存储和访问这些列,则文件系统将施加最大大小限制。 在连接字符串中使用 Type System Version 关键字时,此值会更改。 对于新类型,它们表示为下层类型。 MAX 数据类型返回正常 4k for nvarchar 和 8000 的 varchar8000。 有关详细信息,请参阅 Transact-SQL 参考。 |
| DataTypeName | 返回表示指定列的数据类型的字符串。 |
| IsAliased |
true:列名是别名。false:列名不是别名。 |
| IsAutoIncrement |
true:列以固定增量将值分配给新行。false:该列不会以固定增量为新行赋值。 此列的默认值为 false. |
| IsColumnSet |
true:列是作为列集成员的稀疏列。 |
| IsExpression |
true:列是表达式。false:列不是表达式。 |
| IsHidden |
true:列处于隐藏状态。false:列未隐藏。 |
| IsIdentity |
true:列是标识列。false:列不是标识列。 |
| IsKey |
true:该列是行集中的一组列之一,该列一起唯一标识该行。 设置为IsKeytrue唯一标识行集中的列集。 不需要此列集是最小列集。 可以从基表主键、唯一约束或唯一索引生成这组列。false:列不需要唯一标识行。 |
| IsLong |
true:该列包含包含很长数据的二进制长对象(BLOB)。 很长的数据的定义特定于提供程序。false:该列不包含包含很长数据的二进制长对象(BLOB)。 |
| IsReadOnly |
true:无法修改列。false:可以修改列。 |
| IsRowVersion |
true:该列包含一个无法写入到的永久性行标识符,除了标识该行之外,该列没有有意义的值。false:该列不包含无法写入到的永久性行标识符,并且除了标识行之外没有有意义的值。 |
| IsUnique |
true:列的类型 timestamp。false:列不是类型 timestamp。 |
| NonVersionedProviderType | 列的类型,而不考虑在连接字符串中指定的当前 Type System Version。 返回的值来自 SqlDbType 枚举。 |
| NumericPrecision | 如果 ProviderType 为数值数据类型,则为列的最大精度。 精度取决于列的定义。 如果 ProviderType 不是数值数据类型,则为 255。 |
| NumericScale | 如果 ProviderType DBTYPE_DECIMAL或DBTYPE_NUMERIC,则小数点右侧的数字数。 否则为 255。 |
| ProviderSpecificDataType | 基于连接字符串中的 Type System Version 关键字返回列的提供程序特定的数据类型。 |
| ProviderType | 列数据类型的指示器。 如果列的数据类型因行而异,则必须为 Object。 此列不能包含 null 值。 |
| UdtAssemblyQualifiedName | 如果列是用户定义的类型(UDT),则根据 AssemblyQualifiedName该列是 UDT 程序集的限定名称。 如果该列不是 UDT,则为 null。 |
| XmlSchemaCollectionDatabase | 如果行包含有关 XML 列的信息,则此 XML 实例的架构集合所在的数据库的名称。 如果集合在当前数据库中定义,则此值为 null (Visual Basic Nothing)。 如果没有架构集合,则它还为 null,在这种情况下 XmlSchemaCollectionName ,列 XmlSchemaCollectionOwningSchema 也为 null。 |
| XmlSchemaCollectionName | 如果行包含有关 XML 列的信息,则此 XML 实例的架构集合的名称。 如果没有关联的架构集合,则此值为 null (Nothing Visual Basic)。 如果值为 null,则XmlSchemaCollectionDatabaseXmlSchemaCollectionOwningSchema列也为 null。 |
| XmlSchemaCollectionOwningSchema | 如果行包含有关 XML 列的信息,则拥有此 XML 实例的架构集合所在的关系架构。 如果集合在当前数据库中定义,则此值为 null (Visual Basic Nothing)。 如果没有架构集合,则它还为 null,在这种情况下 XmlSchemaCollectionDatabase ,列 XmlSchemaCollectionName 也为 null。 |
注释
若要确保元数据列返回正确的信息,必须使用参数设置为