次の方法で共有


OleDbDataReader クラス

データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。

この型のすべてのメンバの一覧については、OleDbDataReader メンバ を参照してください。

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

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

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

OleDbDataReader を作成するには、コンストラクタを直接使用せずに、 OleDbCommand オブジェクトの ExecuteReader メソッドを呼び出す必要があります。

OleDbDataReader の使用中は、関連付けられた OleDbConnection は、 OleDbDataReader によって使用されるためビジー状態になります。この間、 OleDbConnection に対して、閉じる以外の操作は実行できません。 OleDbDataReaderClose メソッドを呼び出すまでこの状態が続きます。たとえば、 Close を呼び出すまでは、出力パラメータは取得できません。

データの読み取り中に別のプロセスまたはスレッドが結果セットに加えた変更が、 OleDbDataReader のユーザーに表示されることがあります。ただし、実際に表示されるかどうかは、タイミングによって決まります。

OleDbDataReader を閉じた後に呼び出すことができるのは、 IsClosed プロパティと RecordsAffected プロパティだけです。 RecordsAffected プロパティは、 OleDbDataReader が存在している間はいつでも呼び出すことできますが、正しい戻り値を得るために、 RecordsAffected の値を取得する前には、必ず Close を呼び出してください。

使用例

[Visual Basic, C#, C++] OleDbConnectionOleDbCommand 、および OleDbDataReader を作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、この例では OleDbDataReader を閉じてから、 OleDbConnection を閉じます。

 
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++] 
public:
 void ReadMyData(String* myConnString) {
    String* mySelectQuery = S"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(S"{0}, {1}", __box(myReader->GetInt32(0)), myReader->GetString(1));
    }
    // always call Close when done reading.
    myReader->Close();
    // Close the connection when done with it.
    myConnection->Close();
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.OleDb

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Data (System.Data.dll 内)

参照

OleDbDataReader メンバ | System.Data.OleDb 名前空間