OdbcDataReader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供从数据源读取仅向前数据流数据行的方法。 此类不能被继承。
public ref class OdbcDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class OdbcDataReader sealed : System::Data::Common::DbDataReader
public sealed class OdbcDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public sealed class OdbcDataReader : System.Data.Common.DbDataReader
type OdbcDataReader = class
inherit MarshalByRefObject
interface IDataReader
interface IDataRecord
interface IDisposable
interface IEnumerable
type OdbcDataReader = class
inherit DbDataReader
Public NotInheritable Class OdbcDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public NotInheritable Class OdbcDataReader
Inherits DbDataReader
- 继承
- 继承
- 实现
示例
以下示例创建一个 OdbcConnection、一个 OdbcCommand和一个 OdbcDataReader。 该示例读取数据,并将其写出到控制台。 最后,该示例关闭 ,然后OdbcConnection关闭 OdbcDataReader。
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必须调用 ExecuteReader 对象的方法 OdbcCommand ,而不是直接使用构造函数。
在使用时 OdbcDataReader ,关联的 OdbcConnection 服务正忙于提供服务 OdbcDataReader,除了关闭其他操作之外,其他任何操作都无法执行 OdbcConnection 。 这是在调用方法Close之前OdbcDataReader的情况。 例如,在调用 Close后才能检索输出参数。
正在读取数据时对另一个进程或线程对结果集所做的更改可能对用户 OdbcDataReader可见。 但是,精确行为既取决于驱动程序,又依赖于计时。
IsClosed 是 RecordsAffected 关闭后 OdbcDataReader 可以调用的唯一属性。 有时,必须先呼叫 Close ,然后才能呼叫 RecordsAffected。
属性
| 名称 | 说明 |
|---|---|
| Depth |
获取一个值,该值指示当前行的嵌套深度。 |
| FieldCount |
获取当前行中的列数。 |
| HasRows |
获取一个值,该值指示是否 OdbcDataReader 包含一行或多行。 |
| IsClosed |
指示是否已 OdbcDataReader 关闭。 |
| Item[Int32] |
获取给定列序号的指定列的本机格式的值。 |
| Item[String] |
获取给定列名称的本机格式指定列的值。 |
| RecordsAffected |
获取通过执行 SQL 语句更改、插入或删除的行数。 |
| VisibleFieldCount |
获取不隐藏的 DbDataReader 字段数。 (继承自 DbDataReader) |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IDataRecord.GetData(Int32) |
有关此成员的说明,请参阅 GetData(Int32)。 (继承自 DbDataReader) |
| IDisposable.Dispose() |
此 API 支持产品基础结构,不能在代码中直接使用。 释放类的 OdbcDataReader 当前实例使用的所有资源。 |
| IEnumerable.GetEnumerator() |
此 API 支持产品基础结构,不能在代码中直接使用。 返回循环访问集合的枚举器。 |
扩展方法
| 名称 | 说明 |
|---|---|
| AsParallel(IEnumerable) |
启用查询的并行化。 |
| AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。 |
| CanGetColumnSchema(DbDataReader) |
获取一个值,该值指示是否可以 DbDataReader 获取列架构。 |
| Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定类型。 |
| GetColumnSchema(DbDataReader) |
获取 .DbColumn. 的列架构 (DbDataReader集合) |
| OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。 |