SqlDataReader.GetSchemaTable

Ado.net 获取数据库元数据信息

最近一直和元数据打交道

SqlDataReader.GetSchemaTable 方法

一定要创建一个可用的reader。。

不要通过datatable.createreader.getshematable---这样获取出来的信息是不完全的。

简单copy了一下msdn的东西,做一个记录

DataReader

说明

ColumnName

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

ColumnOrdinal

列的序号。它对于行的书签列(如果有的话)为零。其他列从一开始编号。该列不能包含空值。

ColumnSize

列中值的最大可能长度。对于采用固定长度数据类型的列,它是该数据类型的大小。对于存储在 SQL Server 数据库中的 nvarchar(MAX)varchar(MAX) 和varbinary(MAX) 列,最大大小为 2GB。如果这些列以文件形式存储并访问,则对最大大小的限制由文件系统设定。在连接字符串中使用 Type System Version 关键字时,该值会更改。对于新的类型,它们表示为下层类型。对于 nvarchar ,MAX 数据类型返回正常的 4k,而对于 varchar,则为 8000。有关更多信息,请参见"SQL Server 联机丛书"中的"Transact-SQL 参考"。

NumericPrecision

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

NumericScale

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

IsUnique

只有对于 timestamp 列才为 true,而对于其他所有列,为 false

IsKey

true:此列是行集合中合起来可唯一地标识该行的一组列中的一列。IsKey 设置为true 的一组列必须唯一地标识行集合中的一行。不要求此列集是最小列集。这组列可以从基表主键、唯一约束或唯一索引生成。

false:唯一地标识该行时不需要此列。

BaseServerName

SqlDataReader 使用的 Microsoft SQL Server 实例的名称。

BaseCatalogName

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

BaseColumnName

数据存储区中列的名称。如果使用别名,它可能不同于在 ColumnName 列中返回的列名称。如果无法确定基列名称,或者如果行集合列从数据存储区中的列导出但不等于该列,则为空值。该列的默认值为空值。

BaseSchemaName

包含列的数据存储区中的架构的名称。如果无法确定基架构名称,则为空值。该列的默认值为空值。

BaseTableName

包含列的数据存储区中的表或视图的名称。如果无法确定基表名称,则为空值。该列的默认值为空值。

DataType

映射到列的 .NET Framework 类型。

AllowDBNull

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

ProviderType

列的数据类型的指示符。如果不同行的列数据类型不同,则它必须为 Object。该列不能包含空值。

IsAliased

如果列名称为别名,则为 true;否则为 false

IsExpression

如果此列为表达式,则为 true;否则为 false

IsIdentity

如果此列为标识列,则为 true;否则为 false

IsAutoIncrement

true:该列以固定的增量向新行赋值。

false:该列不以固定的增量向新行赋值。该列的默认值为 false

IsRowVersion

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

IsHidden

如果列是隐藏的,则为 true;否则为 false

IsLong

如果列包含二进制长对象 (BLOB)(它包含非常长的数据),则设置该值。非常长的数据的定义针对于提供程序。

IsReadOnly

如果不能修改该列,则为 true;否则为 false

ProviderSpecificDataType

根据连接字符串中的 Type System Version 关键字,返回列的提供程序特定的数据类型。

DataTypeName

返回表示指定列的数据类型的字符串。

XmlSchemaCollectionDataBase

此 XML 实例的架构集合所在的数据库的名称(如果该行包含有关 XML 列的信息)。如果在当前数据库中定义了该集合,则此值为 空引用(在 Visual Basic 中为 Nothing)(在 Visual Basic 中为 Nothing)。如果没有架构集合,则它也为空,这时 XmlSchemaCollectionName 和XmlSchemaCollectionOwningSchema 列也为空。

XmlSchemaCollectionOwningSchema

此 XML 实例的架构集合所在的所属关系架构(如果该行包含有关 XML 列的信息)。如果在当前数据库中定义了该集合,则此值为 空引用(在 Visual Basic 中为 Nothing)(在 Visual Basic 中为 Nothing)。如果没有架构集合,则它也为空,这时 XmlSchemaCollectionDatabase 和 XmlSchemaCollectionName 列也为空。

XmlSchemaCollectionName

此 XML 实例的架构集合的名称(如果该行包含有关 XML 列的信息)。如果没有关联的架构集合,则此值为 空引用(在 Visual Basic 中为 Nothing)(在 Visual Basic 中为 Nothing)。如果此值为空,则 XmlSchemaCollectionDatabase 和XmlSchemaCollectionOwningSchema 列也为空。

posted @ 2010-07-23 17:02  汤包  阅读(1543)  评论(0编辑  收藏  举报