DataTableReader 类

定义

DataTableReader 以一个或多个只读、仅向前结果集的形式获取一个或多个 DataTable 对象的内容。

public ref class DataTableReader sealed : System::Data::Common::DbDataReader
public sealed class DataTableReader : System.Data.Common.DbDataReader
type DataTableReader = class
    inherit DbDataReader
Public NotInheritable Class DataTableReader
Inherits DbDataReader
继承

注解

DataTableReader 的工作方式与任何其他数据读取器(如 SqlDataReader)非常类似,不同之处在于,DataTableReader 提供循环访问 DataTable中的行。 换句话说,它提供循环访问缓存中的行。 当 DataTableReader 处于活动状态时,可以修改缓存的数据,并且读取器会自动维护其位置。

DataTable创建 DataTableReader 时,生成的 DataTableReader 对象包含一个结果集,其数据与创建 DataTable 相同,但标记为已删除的任何行除外。 列的显示顺序与原始 DataTable相同。 返回结果的结构在架构和数据中与原始 DataTable相同。 通过调用 DataSet 对象的 CreateDataReader 方法创建的 DataTableReader 包含多个结果集(如果 DataSet 包含多个表)。 结果与 DataSet 对象的 DataTableCollection 中的 DataTable 对象的顺序相同。

返回的结果集仅包含每个 DataRow的当前版本;将跳过标记为要删除的行。

DataTableReader 提供稳定的迭代器;也就是说,如果在迭代期间修改基础集合的大小,则 DataTableReader 的内容不会失效。 例如,如果在迭代期间删除或删除 Rows 集合中的一行或多行,则 DataTableReader 中的当前位置得到适当维护,并且不会使迭代器失效。

构造函数

DataTableReader(DataTable)

使用提供的 DataTable中的数据初始化 DataTableReader 类的新实例。

DataTableReader(DataTable[])

使用提供的 DataTable 对象的数组初始化 DataTableReader 类的新实例。

属性

Depth

DataTableReader当前行的嵌套深度。

FieldCount

返回当前行中的列数。

HasRows

获取一个值,该值指示 DataTableReader 是否包含一行或多行。

IsClosed

获取一个值,该值指示是否关闭 DataTableReader

Item[Int32]

获取给定列序号的指定列的本机格式的值。

Item[String]

获取给定列名称的本机格式指定列的值。

RecordsAffected

获取通过执行 SQL 语句插入、更改或删除的行数。

VisibleFieldCount

获取未隐藏的 DbDataReader 中的字段数。

(继承自 DbDataReader)

方法

Close()

关闭当前 DataTableReader

CloseAsync()

异步关闭 DbDataReader 对象。

(继承自 DbDataReader)
CreateObjRef(Type)

创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放 DbDataReader 类的当前实例使用的所有资源。

(继承自 DbDataReader)
Dispose(Boolean)

释放 DbDataReader 使用的非托管资源,并选择性地释放托管资源。

(继承自 DbDataReader)
DisposeAsync()

异步释放 DbDataReader 类的当前实例使用的所有资源。

(继承自 DbDataReader)
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetBoolean(Int32)

获取指定列作为 Boolean的值。

GetByte(Int32)

获取指定列作为字节的值。

GetBytes(Int32, Int64, Byte[], Int32, Int32)

将从指定列偏移处开始的字节流作为从指定缓冲区偏移量开始的数组读取。

GetChar(Int32)

获取指定列的值作为字符。

GetChars(Int32, Int64, Char[], Int32, Int32)

以字符数组的形式返回指定列的值。

GetColumnSchemaAsync(CancellationToken)

这是 GetColumnSchema(DbDataReader)的异步版本。 提供程序应使用适当的实现替代。 可以选择遵守 cancellationToken。 默认实现调用同步 GetColumnSchema(DbDataReader) 调用并返回已完成的任务。 如果已通过已取消 cancellationToken,则默认实现将返回已取消的任务。 GetColumnSchema(DbDataReader) 引发的异常将通过返回的任务异常属性进行通信。

(继承自 DbDataReader)
GetData(Int32)

返回所请求列的嵌套数据读取器。

(继承自 DbDataReader)
GetDataTypeName(Int32)

获取表示指定列的数据类型的字符串。

GetDateTime(Int32)

获取作为 DateTime 对象的指定列的值。

GetDbDataReader(Int32)

为请求的列序号返回一个 DbDataReader 对象,该对象可以使用提供程序特定的实现重写。

(继承自 DbDataReader)
GetDecimal(Int32)

获取指定列作为 Decimal的值。

GetDouble(Int32)

获取列作为双精度浮点数的值。

GetEnumerator()

返回可用于循环访问项集合的枚举器。

GetFieldType(Int32)

获取对象数据类型的 Type

GetFieldValue<T>(Int32)

获取指定列的值作为请求的类型。

(继承自 DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

以异步方式获取指定列的值作为请求的类型。

(继承自 DbDataReader)
GetFieldValueAsync<T>(Int32)

以异步方式获取指定列的值作为请求的类型。

(继承自 DbDataReader)
GetFloat(Int32)

获取指定列的值作为单精度浮点数。

GetGuid(Int32)

获取指定列的值作为全局唯一标识符 (GUID)。

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetInt16(Int32)

获取指定列作为 16 位有符号整数的值。

GetInt32(Int32)

获取指定列作为 32 位有符号整数的值。

GetInt64(Int32)

获取指定列的值作为 64 位有符号整数。

GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetName(Int32)

获取指定列作为 String的值。

GetOrdinal(String)

获取列序号,给定列的名称。

GetProviderSpecificFieldType(Int32)

获取以提供程序特定的格式指定的列的类型。

GetProviderSpecificValue(Int32)

获取以提供程序特定的格式指定的列的值。

GetProviderSpecificValues(Object[])

使用 DataTableReader中所有列的提供程序特定的类型信息填充提供的数组。

GetSchemaTable()

返回描述 DataTableReader的列元数据的 DataTable

GetSchemaTableAsync(CancellationToken)

这是 GetSchemaTable()的异步版本。 提供程序应使用适当的实现替代。 可以选择遵守 cancellationToken。 默认实现调用同步 GetSchemaTable() 调用并返回已完成的任务。 如果已通过已取消 cancellationToken,则默认实现将返回已取消的任务。 GetSchemaTable() 引发的异常将通过返回的任务异常属性进行通信。

(继承自 DbDataReader)
GetStream(Int32)

获取从指定列检索数据的流。

(继承自 DbDataReader)
GetString(Int32)

获取指定列作为字符串的值。

GetTextReader(Int32)

获取从列检索数据的文本读取器。

(继承自 DbDataReader)
GetType()

获取当前实例的 Type

(继承自 Object)
GetValue(Int32)

获取指定列的本机格式的值。

GetValues(Object[])

使用当前行的列值填充对象的数组。

InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
IsDBNull(Int32)

获取一个值,该值指示列是包含不存在值还是缺失值。

IsDBNullAsync(Int32, CancellationToken)

异步获取一个值,该值指示列是包含不存在值还是缺失值。

(继承自 DbDataReader)
IsDBNullAsync(Int32)

异步获取一个值,该值指示列是包含不存在值还是缺失值。

(继承自 DbDataReader)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
NextResult()

DataTableReader 前进到下一个结果集(如果有)。

NextResultAsync()

读取一批语句的结果时,异步将读取器提升到下一个结果。

(继承自 DbDataReader)
NextResultAsync(CancellationToken)

读取一批语句的结果时,异步将读取器提升到下一个结果。

(继承自 DbDataReader)
Read()

DataTableReader 前进到下一条记录。

ReadAsync()

异步将读取器前进到结果集中的下一条记录。

(继承自 DbDataReader)
ReadAsync(CancellationToken)

异步将读取器前进到结果集中的下一条记录。

(继承自 DbDataReader)
ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

显式接口实现

IDataRecord.GetData(Int32)

有关此成员的说明,请参阅 GetData(Int32)

(继承自 DbDataReader)

扩展方法

CanGetColumnSchema(DbDataReader)

获取一个值,该值指示 DbDataReader 是否可以获取列架构。

GetColumnSchema(DbDataReader)

获取 DbDataReader的列架构(DbColumn 集合)。

GetBoolean(DbDataReader, String)

获取指定列的值作为布尔值。

GetByte(DbDataReader, String)

获取指定列作为字节的值。

GetBytes(DbDataReader, String, Int64, Byte[], Int32, Int32)

从指定索引处开始的指定列中读取指定的字节数,并将其写入缓冲区中从指定位置开始的缓冲区。

GetChar(DbDataReader, String)

获取指定列的值作为单个字符。

GetChars(DbDataReader, String, Int64, Char[], Int32, Int32)

从指定索引处开始的指定列读取指定数目的字符,并将其写入从指定位置开始的缓冲区。

GetData(DbDataReader, String)

返回所请求列的嵌套数据读取器。

GetDataTypeName(DbDataReader, String)

获取指定列的数据类型的名称。

GetDateTime(DbDataReader, String)

获取作为 DateTime 对象的指定列的值。

GetDecimal(DbDataReader, String)

获取指定列作为 Decimal的值。

GetDouble(DbDataReader, String)

获取指定列的值作为双精度浮点数。

GetFieldType(DbDataReader, String)

获取指定列的数据类型。

GetFieldValue<T>(DbDataReader, String)

获取指定列的值作为请求的类型。

GetFieldValueAsync<T>(DbDataReader, String, CancellationToken)

以异步方式获取指定列的值作为请求的类型。

GetFloat(DbDataReader, String)

获取指定列的值作为单精度浮点数。

GetGuid(DbDataReader, String)

获取指定列的值作为全局唯一标识符(GUID)。

GetInt16(DbDataReader, String)

获取指定列作为 16 位有符号整数的值。

GetInt32(DbDataReader, String)

获取指定列作为 32 位有符号整数的值。

GetInt64(DbDataReader, String)

获取指定列的值作为 64 位有符号整数。

GetProviderSpecificFieldType(DbDataReader, String)

获取指定列的提供程序特定类型。

GetProviderSpecificValue(DbDataReader, String)

获取作为提供程序特定类型的实例的指定列的值。

GetStream(DbDataReader, String)

获取从指定列检索数据的流。

GetString(DbDataReader, String)

获取指定列作为 String实例的值。

GetTextReader(DbDataReader, String)

获取从列检索数据的文本读取器。

GetValue(DbDataReader, String)

获取指定列作为 Object实例的值。

IsDBNull(DbDataReader, String)

获取一个值,该值指示列是包含不存在值还是缺失值。

IsDBNullAsync(DbDataReader, String, CancellationToken)

异步获取一个值,该值指示列是包含不存在值还是缺失值。

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

ConfigureAwait(IAsyncDisposable, Boolean)

配置如何执行从异步可释放项返回的任务的 await。

适用于