IDataReader IDataReader IDataReader IDataReader Interface


データ ソースでのコマンド実行により取得された結果セットの 1 つ以上の順方向専用ストリームを読み取る手段を提供し、リレーショナル データベースにアクセスする .NET Framework データ プロバイダーによって実装されます。Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable

次の例は、派生クラスのインスタンスを作成SqlConnectionSqlCommand、およびSqlDataReaderします。The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. 例では、コンソールに書き出し、データを読み取ります。The example reads through the data, writing it out to the console. 最後に、例、 SqlDataReaderSqlConnectionします。Finally, the example closes the SqlDataReader, then the SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;

class Program
    static void Main()
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";

    private static void ReadOrderData(string connectionString)
        string queryString =
            "SELECT OrderID, CustomerID FROM dbo.Orders;";

        using (SqlConnection connection =
                   new SqlConnection(connectionString))
            SqlCommand command =
                new SqlCommand(queryString, connection);

            SqlDataReader reader = command.ExecuteReader();

            // Call Read before accessing data.
            while (reader.Read())

            // Call Close when done reading.

    private static void ReadSingleRow(IDataRecord record)
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));

Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
    End Sub

    Private Sub ReadOrderData(ByVal connectionString As String)
        Dim queryString As String = _
            "SELECT OrderID, CustomerID FROM dbo.Orders;"

        Using connection As New SqlConnection(connectionString)
            Dim command As New SqlCommand(queryString, connection)

            Dim reader As SqlDataReader = command.ExecuteReader()

            ' Call Read before accessing data.
            While reader.Read()
                ReadSingleRow(CType(reader, IDataRecord))
            End While

            ' Call Close when done reading.
        End Using
    End Sub

    Private Sub ReadSingleRow(ByVal record As IDataRecord)
       Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))

    End Sub

End Module


IDataReaderIDataRecordインターフェイスが実装するために、継承したクラスを使用する、DataReaderクラスで、結果セットの 1 つまたは複数順方向専用ストリームを読み取る手段を提供します。The IDataReader and IDataRecord interfaces allow an inheriting class to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. 詳細についてはDataReaderクラスを参照してくださいDataReader によるデータの取得します。For more information about DataReader classes, see Retrieving Data Using a DataReader.

アプリケーションがのインスタンスを作成していない、IDataReaderインターフェイスを直接が継承するクラスのインスタンスを作成しますIDataReaderします。An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

クラスを継承するIDataReader継承されたメンバーを実装し、通常はプロバイダー固有の機能を追加するための追加メンバーを定義する必要があります。Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

結果を別のセットに加えられた変更を処理またはスレッドのデータの読み込み中を実装するクラスのユーザーに表示される場合があります、IDataReaderします。Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. ただし、正確な動作は、プロバイダーとタイミングに依存するは。However, the precise behavior is both provider and timing dependent.

注意 (実装者)

フォームの継承クラスの名前を .NET Framework データ プロバイダーの間で整合性を高めるPrvコマンドの wherePrvは特定の .NET Framework データ プロバイダー名前空間のすべてのクラスに指定された uniform プレフィックスです。To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. たとえば、Sqlのプレフィックスは、SqlDataAdapterクラス、System.Data.SqlClient名前空間。For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

ユーザーがのインスタンスを作成しないでください、DataReaderクラスを直接します。Users do not create an instance of a DataReader class directly. 代わりに、取得、DataReaderインスタンスを通じて、ExecuteReaderのメソッド、Commandオブジェクト。Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. そのため、マークするDataReader内部としてコンス トラクター。Therefore, you should mark DataReader constructors as internal.


Depth Depth Depth Depth

現在の行の入れ子の深さを示す値を取得します。Gets a value indicating the depth of nesting for the current row.

FieldCount FieldCount FieldCount FieldCount

現在の行の列の数を取得します。Gets the number of columns in the current row.

(Inherited from IDataRecord)
IsClosed IsClosed IsClosed IsClosed

データ リーダーが閉じているかどうかを示す値を取得します。Gets a value indicating whether the data reader is closed.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

指定したインデックスにある列を取得します。Gets the column located at the specified index.

(Inherited from IDataRecord)
Item[String] Item[String] Item[String] Item[String]

指定された名前を持つ列を取得します。Gets the column with the specified name.

(Inherited from IDataRecord)
RecordsAffected RecordsAffected RecordsAffected RecordsAffected

SQL ステートメントの実行によって変更、挿入、または削除された行の数を取得します。Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.


Close() Close() Close() Close()

IDataReader オブジェクトを閉じます。Closes the IDataReader Object.

Dispose() Dispose() Dispose() Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

指定された列の値を Boolean として取得します。Gets the value of the specified column as a Boolean.

(Inherited from IDataRecord)
GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

指定された列の 8 ビット符号なし整数値を取得します。Gets the 8-bit unsigned integer value of the specified column.

(Inherited from IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まるバイトのストリームを、配列としてバッファーに読み取ります。Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Inherited from IDataRecord)
GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

指定された列の文字値を取得します。Gets the character value of the specified column.

(Inherited from IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まる文字列ストリームを、配列としてバッファーに読み取ります。Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Inherited from IDataRecord)
GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

指定された列序数の IDataReader を返します。Returns an IDataReader for the specified column ordinal.

(Inherited from IDataRecord)
GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

指定されたフィールドのデータ型情報を取得します。Gets the data type information for the specified field.

(Inherited from IDataRecord)
GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

指定されたフィールドの日付と時刻のデータ値を取得します。Gets the date and time data value of the specified field.

(Inherited from IDataRecord)
GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

指定されたフィールドの固定位置の数値を取得します。Gets the fixed-position numeric value of the specified field.

(Inherited from IDataRecord)
GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

指定されたフィールドの倍精度浮動小数点値を取得します。Gets the double-precision floating point number of the specified field.

(Inherited from IDataRecord)
GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

GetValue(Int32) から返される Object の型に対応する Type 情報を取得します。Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

(Inherited from IDataRecord)
GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

指定されたフィールドの単精度浮動小数点値を取得します。Gets the single-precision floating point number of the specified field.

(Inherited from IDataRecord)
GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

指定したフィールドの GUID 値を返します。Returns the GUID value of the specified field.

(Inherited from IDataRecord)
GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

指定されたフィールドの 16 ビット符号付き整数値を取得します。Gets the 16-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

指定されたフィールドの 32 ビット符号付き整数値を取得します。Gets the 32-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

指定されたフィールドの 64 ビット符号付き整数値を取得します。Gets the 64-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

検索するフィールドの名前を取得します。Gets the name for the field to find.

(Inherited from IDataRecord)
GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

名前付きフィールドのインデックスを返します。Return the index of the named field.

(Inherited from IDataRecord)
GetSchemaTable() GetSchemaTable() GetSchemaTable() GetSchemaTable()

DataTable の列メタデータを記述する IDataReader を返します。Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

指定したフィールドの文字列値を取得します。Gets the string value of the specified field.

(Inherited from IDataRecord)
GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

指定したフィールドの値を返します。Return the value of the specified field.

(Inherited from IDataRecord)
GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

現在のレコードの列の値を持つオブジェクトの配列を設定します。Populates an array of objects with the column values of the current record.

(Inherited from IDataRecord)
IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

指定されたフィールドが null に設定されているかどうかを返します。Return whether the specified field is set to null.

(Inherited from IDataRecord)
NextResult() NextResult() NextResult() NextResult()

バッチ SQL ステートメントの結果を読み取っているときに、次の結果にデータ リーダーを進めます。Advances the data reader to the next result, when reading the results of batch SQL statements.

Read() Read() Read() Read()

IDataReader を次のレコードに進めます。Advances the IDataReader to the next record.