拔牙之后要镶牙吗:OleDbDataReader类使用方法?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 18:16:31

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

  有关此类型所有成员的列表,请参阅 OleDbDataReader 成员。

  System.Object
  System.MarshalByRefObject
  System.Data.OleDb.OleDbDataReader

  [Visual Basic]
  NotInheritable Public Class OleDbDataReader
  Inherits MarshalByRefObject
  Implements IDataReader, IDisposable, IDataRecord, IEnumerable
  [C#]
  public sealed class OleDbDataReader : MarshalByRefObject,
  IDataReader, IDisposable, IDataRecord, IEnumerable
  [C++]
  public __gc __sealed class OleDbDataReader : public
  MarshalByRefObject, IDataReader, IDisposable, IDataRecord,
  IEnumerable
  [JScript]
  public class OleDbDataReader extends MarshalByRefObject implements
  IDataReader, IDisposable, IDataRecord, IEnumerable
  线程安全
  此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

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

  在使用 OleDbDataReader 时,相关联的 OleDbConnection 忙于为 OleDbDataReader 服务,对 OleDbConnection 不能执行任何其他操作,只能关闭。这种情况会一直持续到调用 OleDbDataReader 的 Close 方法为止。例如,在调用 Close 之前,无法检索输出参数。

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

  IsClosed 和 RecordsAffected 是在 OleDbDataReader 关闭后仅有的可以调用的属性。尽管当 OleDbDataReader 存在时,可随时访问 RecordsAffected 属性,但是,请在返回 RecordsAffected 的值之前总是调用 Close,以确保返回精确的值。

  示例
  [Visual Basic, C#] 以下示例创建一个 OleDbConnection、一个 OleDbCommand 和一个 OleDbDataReader。该示例读取全部数据,并将这些数据写到控制台。最后,该示例先关闭 OleDbDataReader,再关闭 OleDbConnection。

  [Visual Basic]
  Public Sub ReadMyData(myConnString As String)
  Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
  Dim myConnection As New OleDbConnection(myConnString)
  Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
  myConnection.Open()
  Dim myReader As OleDbDataReader
  myReader = myCommand.ExecuteReader()
  ' Always call Read before accessing data.
  While myReader.Read()
  Console.WriteLine(myReader.GetInt32(0).ToString() + ", " _
  + myReader.GetString(1))
  End While
  ' always call Close when done reading.
  myReader.Close()
  ' Close the connection when done with it.
  myConnection.Close()
  End Sub

  [C#]
  public void ReadMyData(string myConnString) {
  string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
  OleDbConnection myConnection = new OleDbConnection(myConnString);
  OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
  myConnection.Open();
  OleDbDataReader myReader;
  myReader = myCommand.ExecuteReader();
  // Always call Read before accessing data.
  while (myReader.Read()) {
  Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
  }
  // always call Close when done reading.
  myReader.Close();
  // Close the connection when done with it.
  myConnection.Close();
  }

  [C++, JScript] 没有可用于 C++ 或 JScript 的示例。若要查看 Visual Basic 或 C# 示例,请单击页左上角的“语言筛选器”按钮 。

  要求
  命名空间: System.Data.OleDb

  平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列

  程序集: System.Data (在 System.Data.dll 中)
  参见http://www.funba.com/Resource/msdn/cpref/frlrfsystemdataoledboledbdatareaderclasstopic.htm