OleDbDataReader 类

定义

提供从数据源读取数据行的只进流的方法。 此类不能被继承。

public ref class OleDbDataReader sealed : System::Data::Common::DbDataReader
public ref class OleDbDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public sealed class OleDbDataReader : System.Data.Common.DbDataReader
public sealed class OleDbDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
type OleDbDataReader = class
    inherit DbDataReader
type OleDbDataReader = class
    inherit MarshalByRefObject
    interface IDataReader
    interface IDisposable
    interface IDataRecord
    interface IEnumerable
Public NotInheritable Class OleDbDataReader
Inherits DbDataReader
Public NotInheritable Class OleDbDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
继承
OleDbDataReader
继承
继承
OleDbDataReader
实现

示例

以下示例创建 OleDbConnectionOleDbCommandOleDbDataReader。 该示例读取数据,将其写出到控制台。 最后,该示例关闭 , OleDbDataReader 然后关闭 OleDbConnection

public static void ReadData(string connectionString, string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbCommand command = new OleDbCommand(queryString, connection);

        connection.Open();
        OleDbDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            Console.WriteLine(reader[0].ToString());
        }
        reader.Close();
    }
}
Public Sub ReadData(ByVal connectionString As String, _
    ByVal queryString As String)
    Using connection As New OleDbConnection(connectionString)
        Dim command As New OleDbCommand(queryString, connection)

        connection.Open()

        Dim reader As OleDbDataReader = command.ExecuteReader()
        While reader.Read()
            Console.WriteLine(reader(0).ToString())
        End While
        reader.Close()
    End Using
End Sub

注解

若要创建 , OleDbDataReader必须调用 ExecuteReader 对象的 方法 OleDbCommand ,而不是直接使用构造函数。

在关闭 之前, OleDbConnection请先关闭 OleDbDataReader 对象。 如果计划重新使用 OleDbCommand 对象,OleDbDataReader还必须关闭 该对象。例如,在调用 Close之前,无法检索输出参数。

读取数据时,另一进程或线程对结果集所做的更改可能对 OleDbDataReader 的用户可见。 但是,确切的行为与时间有关。

IsClosedRecordsAffected 是在关闭 OleDbDataReader 后可以调用的唯一属性。 RecordsAffected尽管 可以在 存在时OleDbDataReader访问 属性,但始终在返回 值RecordsAffected之前调用 Close ,以确保返回值准确。

属性

Depth

获取一个值,用于指示当前行的嵌套深度。

FieldCount

获取当前行中的列数。

HasRows

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

IsClosed

指示是否可关闭数据读取器。

Item[Int32]

在给定列序号的情况下,获取指定列的以本机格式表示的值。

Item[String]

在给定列名称的情况下,获取指定列的以本机格式表示的值。

RecordsAffected

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

VisibleFieldCount

获取 OleDbDataReader 中未隐藏的字段的数目。

方法

Close()

关闭 OleDbDataReader 对象。

CloseAsync()

异步关闭 DbDataReader 对象。

(继承自 DbDataReader)
CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

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

(继承自 DbDataReader)
Dispose(Boolean)

释放由 DbDataReader 占用的非托管资源,还可以另外再释放托管资源。

(继承自 DbDataReader)
DisposeAsync()

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

(继承自 DbDataReader)
Equals(Object)

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

(继承自 Object)
Finalize()

允许对象在被“垃圾回收”之前尝试释放资源并执行其他清理操作。

GetBoolean(Int32)

获取指定列的布尔值形式的值。

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)

返回请求的列序号的 OleDbDataReader 对象。

GetDataTypeName(Int32)

获取源数据类型的名称。

GetDateTime(Int32)

DateTime 对象的形式获取指定列的值。

GetDbDataReader(Int32)

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

(继承自 DbDataReader)
GetDecimal(Int32)

Decimal 对象的形式获取指定列的值。

GetDouble(Int32)

获取指定列的双精度浮点数形式的值。

GetEnumerator()

返回一个可用于循环访问数据读取器中的行的 IEnumerator

GetFieldType(Int32)

获取作为对象的数据类型的 Type

GetFieldValue<T>(Int32)

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

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

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

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

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

(继承自 DbDataReader)
GetFloat(Int32)

获取指定列的单精度浮点数形式的值。

GetGuid(Int32)

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

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetInt16(Int32)

获取指定列的 16 位有符号整数形式的值。

GetInt32(Int32)

获取指定列的 32 位带符号整数形式的值。

GetInt64(Int32)

以 64 位有符号整数的形式获取指定列的值。

GetLifetimeService()
已过时.

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

(继承自 MarshalByRefObject)
GetName(Int32)

获取指定列的名称。

GetOrdinal(String)

在给定列名时获取相应的列序号。

GetProviderSpecificFieldType(Int32)

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

(继承自 DbDataReader)
GetProviderSpecificValue(Int32)

以特定于提供程序的类型实例的形式获取指定列的值。

(继承自 DbDataReader)
GetProviderSpecificValues(Object[])

在当前行的集合中获取提供程序特定的所有属性列。

(继承自 DbDataReader)
GetSchemaTable()

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

GetSchemaTableAsync(CancellationToken)

这是 GetSchemaTable() 的异步版本。 提供程序应使用合适的实现进行重写。 可以选择接受 cancellationToken。 默认实现调用同步 GetSchemaTable() 调用并返回已完成任务。 如果传递到已取消 cancellationToken,则默认实现将返回已取消的任务。 GetSchemaTable() 引发的异常将通过任务异常属性传递。

(继承自 DbDataReader)
GetStream(Int32)

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

(继承自 DbDataReader)
GetString(Int32)

获取指定列的字符串形式的值。

GetTextReader(Int32)

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

(继承自 DbDataReader)
GetTimeSpan(Int32)

TimeSpan 对象的形式获取指定列的值。

GetType()

获取当前实例的 Type

(继承自 Object)
GetValue(Int32)

获取以本机格式表示的指定序号处的列的值。

GetValues(Object[])

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

InitializeLifetimeService()
已过时.

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

(继承自 MarshalByRefObject)
IsDBNull(Int32)

获取一个值,该值指示列中是否包含不存在或丢失的值。

IsDBNullAsync(Int32)

异步获取一个值,该值指示列中是否包含不存在的或缺少的值。

(继承自 DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

异步获取一个值,该值指示列中是否包含不存在的或缺少的值。

(继承自 DbDataReader)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

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

(继承自 MarshalByRefObject)
NextResult()

在读取一批 SQL 语句的结果时,使数据读取器前进到下一个结果。

NextResultAsync()

在读取一批语句的结果时,使读取器异步前进到下一个结果。

(继承自 DbDataReader)
NextResultAsync(CancellationToken)

在读取一批语句的结果时,使读取器异步前进到下一个结果。

(继承自 DbDataReader)
Read()

OleDbDataReader 前进到下一条记录。

ReadAsync()

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

(继承自 DbDataReader)
ReadAsync(CancellationToken)

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

(继承自 DbDataReader)
ToString()

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

(继承自 Object)

显式接口实现

IDataRecord.GetData(Int32)

返回指定列序号的 IDataReader

IDataRecord.GetData(Int32)

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

(继承自 DbDataReader)
IDisposable.Dispose()

此 API 支持产品基础结构,不能在代码中直接使用。

释放 OleDbDataReader 类的当前实例使用的资源。

IEnumerable.GetEnumerator()

返回循环访问集合的枚举数。

扩展方法

CanGetColumnSchema(DbDataReader)

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

GetColumnSchema(DbDataReader)

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

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅