OdbcDataReader 类

定义

提供从数据源读取仅向前数据流数据行的方法。 无法继承此类。

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

示例

以下示例创建 OdbcConnectionOdbcCommandOdbcDataReader。 该示例读取数据,并将其写出到控制台。 最后,该示例关闭 OdbcDataReader,然后关闭 OdbcConnection

public static void ReadData(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM Orders";

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcCommand command = new OdbcCommand(queryString, connection);

        connection.Open();

        // Execute the DataReader and access the data.
        OdbcDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader[0]);
        }

        // Call Close when done reading.
        reader.Close();
    }
}
Public Sub ReadData(ByVal connectionString As String)
    Dim queryString As String = "SELECT DISTINCT CustomerID FROM Orders"

    Using connection As New OdbcConnection(connectionString)
        Dim command As New OdbcCommand(queryString, connection)

        connection.Open()

        Dim reader As OdbcDataReader = command.ExecuteReader()

        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader(0).ToString)
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

注解

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

在使用 OdbcDataReader 时,关联的 OdbcConnection 正忙于为 OdbcDataReader提供服务,除了关闭 OdbcConnection 外,无法执行其他操作。 在调用 OdbcDataReaderClose 方法之前,情况就是这种情况。 例如,在调用 Close之后,才能检索输出参数。

正在读取数据时对另一个进程或线程对结果集所做的更改可能对 OdbcDataReader的用户可见。 但是,精确行为既取决于驱动程序,又依赖于计时。

IsClosedRecordsAffected 是关闭 OdbcDataReader 后可以调用的唯一属性。 有时,必须先调用 Close,然后才能调用 RecordsAffected

属性

Depth

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

FieldCount

获取当前行中的列数。

HasRows

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

IsClosed

指示 OdbcDataReader 是否已关闭。

Item[Int32]

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

Item[String]

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

RecordsAffected

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

VisibleFieldCount

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

(继承自 DbDataReader)

方法

Close()

关闭 OdbcDataReader 对象。

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)

返回指定列序号的 IDataReader

GetData(Int32)

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

(继承自 DbDataReader)
GetDataTypeName(Int32)

获取源数据类型的名称。

GetDate(Int32)

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

GetDateTime(Int32)

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

GetDbDataReader(Int32)

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

(继承自 DbDataReader)
GetDecimal(Int32)

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

GetDouble(Int32)

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

GetEnumerator()

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

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)

获取指定列的名称。

GetOrdinal(String)

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

GetProviderSpecificFieldType(Int32)

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

(继承自 DbDataReader)
GetProviderSpecificValue(Int32)

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

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

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

(继承自 DbDataReader)
GetSchemaTable()

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

GetSchemaTableAsync(CancellationToken)

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

(继承自 DbDataReader)
GetStream(Int32)

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

(继承自 DbDataReader)
GetString(Int32)

获取指定列作为 String的值。

GetTextReader(Int32)

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

(继承自 DbDataReader)
GetTime(Int32)

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

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()

读取批处理 SQL 语句的结果时,将 OdbcDataReader 提升到下一个结果。

NextResultAsync()

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

(继承自 DbDataReader)
NextResultAsync(CancellationToken)

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

(继承自 DbDataReader)
Read()

OdbcDataReader 前进到下一条记录。

ReadAsync()

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

(继承自 DbDataReader)
ReadAsync(CancellationToken)

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

(继承自 DbDataReader)
ToString()

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

(继承自 Object)

显式接口实现

IDataRecord.GetData(Int32)

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

(继承自 DbDataReader)
IDisposable.Dispose()

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

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

IEnumerable.GetEnumerator()

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

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

扩展方法

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。

适用于

另请参阅