次の方法で共有


IDataReader インターフェイス

定義

データ ソースでのコマンド実行により取得された結果セットの 1 つ以上の順方向専用ストリームを読み取る手段を提供し、リレーショナル データベースにアクセスする .NET データ プロバイダーによって実装されます。

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

次の例では、派生クラス、、、SqlConnectionSqlCommandおよび のインスタンスを作成しますSqlDataReader。 この例では、データを読み取り、コンソールに書き込みます。 最後に、この例では を閉じ、 SqlDataReader次に を SqlConnection閉じます。

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);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            ReadSingleRow((IDataRecord)reader);
        }

        // Call Close when done reading.
        reader.Close();
    }
}

private static void ReadSingleRow(IDataRecord dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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)
        connection.Open()

        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.
        reader.Close()
    End Using
End Sub

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

注釈

IDataReaderインターフェイスと IDataRecord インターフェイスを使用すると、継承クラスで クラスをDataReader実装できます。これにより、結果セットの 1 つ以上の前方専用ストリームを読み取る手段が提供されます。 クラスの詳細 DataReader については、「 DataReader を使用したデータの取得」を参照してください。

アプリケーションは インターフェイスの IDataReader インスタンスを直接作成するのではなく、 を継承するクラスのインスタンスを作成します IDataReader

IDataReader を継承するクラスは、継承されたメンバーを実装し、通常は、プロバイダー固有の機能を追加するための追加メンバーを定義する必要があります。

データが読み取られている間に別のプロセスまたはスレッドによって結果セットに加えられた変更は、IDataReader を実装するクラスのユーザーに表示される場合がありますが、 正確な動作は、プロバイダーとタイミングに応じて変わります。

注意 (実装者)

.NET Framework データ プロバイダー間の一貫性を高めるために、継承クラスに Command という形式Prvで名前を付けます。ここでPrv、 は、特定の.NET Framework データ プロバイダー名前空間内のすべてのクラスに渡される均一なプレフィックスです。 たとえば、 Sql は 名前空間の System.Data.SqlClient クラスのSqlDataAdapterプレフィックスです。

ユーザーは、クラスのインスタンスを DataReader 直接作成しません。 代わりに、 オブジェクトの メソッドをDataReaderExecuteReader使用してインスタンスをCommand取得します。 したがって、コンストラクターを内部としてマーク DataReader する必要があります。

プロパティ

Depth

現在の行の入れ子の深さを示す値を取得します。

FieldCount

現在の行の列の数を取得します。

(継承元 IDataRecord)
IsClosed

データ リーダーが閉じているかどうかを示す値を取得します。

Item[Int32]

指定したインデックスにある列を取得します。

(継承元 IDataRecord)
Item[String]

指定された名前を持つ列を取得します。

(継承元 IDataRecord)
RecordsAffected

SQL ステートメントの実行によって変更、挿入、または削除された行の数を取得します。

メソッド

Close()

IDataReader オブジェクトを閉じます。

Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 IDisposable)
GetBoolean(Int32)

指定された列の値を Boolean として取得します。

(継承元 IDataRecord)
GetByte(Int32)

指定された列の 8 ビット符号なし整数値を取得します。

(継承元 IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まるバイトのストリームを、配列としてバッファーに読み取ります。

(継承元 IDataRecord)
GetChar(Int32)

指定された列の文字値を取得します。

(継承元 IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まる文字列ストリームを、配列としてバッファーに読み取ります。

(継承元 IDataRecord)
GetData(Int32)

指定された列序数の IDataReader を返します。

(継承元 IDataRecord)
GetDataTypeName(Int32)

指定されたフィールドのデータ型情報を取得します。

(継承元 IDataRecord)
GetDateTime(Int32)

指定されたフィールドの日付と時刻のデータ値を取得します。

(継承元 IDataRecord)
GetDecimal(Int32)

指定されたフィールドの固定位置の数値を取得します。

(継承元 IDataRecord)
GetDouble(Int32)

指定されたフィールドの倍精度浮動小数点値を取得します。

(継承元 IDataRecord)
GetFieldType(Int32)

GetValue(Int32) から返される Object の型に対応する Type 情報を取得します。

(継承元 IDataRecord)
GetFloat(Int32)

指定されたフィールドの単精度浮動小数点値を取得します。

(継承元 IDataRecord)
GetGuid(Int32)

指定したフィールドの GUID 値を返します。

(継承元 IDataRecord)
GetInt16(Int32)

指定されたフィールドの 16 ビット符号付き整数値を取得します。

(継承元 IDataRecord)
GetInt32(Int32)

指定されたフィールドの 32 ビット符号付き整数値を取得します。

(継承元 IDataRecord)
GetInt64(Int32)

指定されたフィールドの 64 ビット符号付き整数値を取得します。

(継承元 IDataRecord)
GetName(Int32)

検索するフィールドの名前を取得します。

(継承元 IDataRecord)
GetOrdinal(String)

名前付きフィールドのインデックスを返します。

(継承元 IDataRecord)
GetSchemaTable()

DataTable の列メタデータを記述する IDataReader を返します。

実行されたコマンドが結果セットを返さなかった場合、または NextResult()false を返した場合は null を返します。

GetString(Int32)

指定したフィールドの文字列値を取得します。

(継承元 IDataRecord)
GetValue(Int32)

指定したフィールドの値を返します。

(継承元 IDataRecord)
GetValues(Object[])

現在のレコードの列の値を持つオブジェクトの配列を設定します。

(継承元 IDataRecord)
IsDBNull(Int32)

指定されたフィールドが null に設定されているかどうかを返します。

(継承元 IDataRecord)
NextResult()

バッチ SQL ステートメントの結果を読み取っているときに、次の結果にデータ リーダーを進めます。

Read()

IDataReader を次のレコードに進めます。

適用対象