SqlDataReader クラス

定義

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

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
継承
SqlDataReader
継承
継承
SqlDataReader
実装

次の例では、 、 SqlConnectionSqlCommandおよび を作成します SqlDataReader。 この例では、データを読み取り、コンソール ウィンドウに書き込みます。 その後、コードは を SqlDataReader閉じます。 は SqlConnection 、コード ブロックの末尾で自動的に using 閉じられます。

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";
        ReadOrderData(str);
    }

    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]));
    }
}
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;"
        ReadOrderData(str)
    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)
            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

End Module

注釈

SqlDataReader作成するには、コンストラクターを ExecuteReader 直接使用するのではなく、 オブジェクトの SqlCommand メソッドを呼び出す必要があります。

SqlDataReaderが使用されている間、関連付けられている SqlConnection は を処理SqlDataReader中であり、閉じる以外に に対して他の操作をSqlConnection実行することはできません。 これは、 の メソッドSqlDataReaderClose呼び出されるまでの場合です。 たとえば、 を呼び出 Closeすまで出力パラメーターを取得することはできません。

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

IsClosed が閉じた後に呼び出すことができるプロパティは、RecordsAffectedSqlDataReader だけです。 がRecordsAffected存在する間SqlDataReaderは プロパティにアクセスできますが、 の値RecordsAffectedを返す前に 常に を呼び出Closeして、正確な戻り値を保証します。

シーケンシャル アクセス (CommandBehavior.SequentialAccess) を InvalidOperationException 使用する場合、位置が高度で、前の列で別の SqlDataReader 読み取り操作が試行されると、 が発生します。

注意

パフォーマンスを最適化するために、 SqlDataReader 不要なオブジェクトの作成やデータの不要なコピーの作成を回避します。 したがって、 などの GetValue メソッドを複数回呼び出す場合は、同じオブジェクトへの参照が返されます。 などの GetValueメソッドによって返されるオブジェクトの基になる値を変更する場合は注意が必要です。

プロパティ

Connection

SqlConnection に関連付けられている SqlDataReader を取得します。

Depth

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

FieldCount

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

HasRows

SqlDataReader に 1 行以上の行が格納されているかどうかを示す値を取得します。

IsClosed

指定した SqlDataReader インスタンスが閉じているかどうかを示すブール値を取得します。

Item[Int32]

列の序数によって指定した列の値をネイティブ形式で取得します。

Item[String]

列名によって指定した列の値をネイティブ形式で取得します。

RecordsAffected

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

VisibleFieldCount

SqlDataReader 内の表示フィールドの数を取得します。

メソッド

Close()

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

Close()

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

(継承元 DbDataReader)
CloseAsync()

DbDataReader オブジェクトを非同期に閉じます。

(継承元 DbDataReader)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

DbDataReader クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

(継承元 DbDataReader)
Dispose(Boolean)

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

Dispose(Boolean)

DbDataReader によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 DbDataReader)
DisposeAsync()

DbDataReader クラスの現在のインスタンスによって使用されているすべてのリソースを非同期で解放します。

(継承元 DbDataReader)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetBoolean(Int32)

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

GetByte(Int32)

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

GetBytes(Int32, Int64, Byte[], Int32, Int32)

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

GetChar(Int32)

指定した列の値を単一の文字として取得します。

GetChars(Int32, Int64, Char[], Int32, Int32)

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

GetColumnSchema()

読み取り専用である列のスキーマのコレクションを取得します。

GetColumnSchemaAsync(CancellationToken)

これは GetColumnSchema(DbDataReader) の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 必要に応じて、cancellationToken を優先できます。 既定の実装は同期 GetColumnSchema(DbDataReader) コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 GetColumnSchema(DbDataReader) によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

(継承元 DbDataReader)
GetData(Int32)

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

GetData(Int32)

要求された列に対して、入れ子になったデータ リーダーを返します。

(継承元 DbDataReader)
GetDataTypeName(Int32)

指定した列のデータ型を示す文字列を取得します。

GetDateTime(Int32)

指定された列の値を DateTime オブジェクトとして取得します。

GetDateTimeOffset(Int32)

指定した列の値を DateTimeOffset オブジェクトとして取得します。

GetDbDataReader(Int32)

プロバイダー固有の実装でオーバーライドできる、要求された列序数に対応した DbDataReader オブジェクトを返します。

(継承元 DbDataReader)
GetDecimal(Int32)

指定された列の値を Decimal オブジェクトとして取得します。

GetDouble(Int32)

指定した列の値を倍精度浮動小数点数として取得します。

GetEnumerator()

SqlDataReader を反復処理する IEnumerator を返します。

GetFieldType(Int32)

オブジェクトのデータ型である Type を取得します。

GetFieldValue<T>(Int32)

指定された列の値を型として同期的に取得します。 GetFieldValueAsync<T>(Int32, CancellationToken) は、このメソッドの非同期バージョンです。

GetFieldValue<T>(Int32)

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

(継承元 DbDataReader)
GetFieldValueAsync<T>(Int32)

要求された型として指定された列の値を非同期で取得します。

(継承元 DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

指定された列の値を型として非同期的に取得します。 GetFieldValue<T>(Int32) は、このメソッドの同期バージョンです。

GetFieldValueAsync<T>(Int32, CancellationToken)

要求された型として指定された列の値を非同期で取得します。

(継承元 DbDataReader)
GetFloat(Int32)

指定された列の値を単精度浮動小数点値として取得します。

GetGuid(Int32)

指定した列の値をグローバル一意識別子 (GUID) として取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetInt16(Int32)

指定した列の値を 16 ビット符号付き整数として取得します。

GetInt32(Int32)

指定された列の値を 32 ビット符号付き整数として取得します。

GetInt64(Int32)

指定された列の値を 64 ビット符号付き整数として取得します。

GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetName(Int32)

指定した列の名前を取得します。

GetOrdinal(String)

列の名前を指定して、列の序数を取得します。

GetProviderSpecificFieldType(Int32)

基になるプロバイダー固有フィールド型の内部表現である Object を取得します。

GetProviderSpecificValue(Int32)

基になるプロバイダー固有の値の内部表現である Object を取得します。

GetProviderSpecificValues(Object[])

基になるプロバイダー固有の値の内部表現であるオブジェクトの配列を取得します。

GetSchemaTable()

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

GetSchemaTable()

DataTable の列メタデータを記述する DbDataReader を返します。 実行されたコマンドが結果セットを返さなかった場合、または NextResult()false を返した場合は null を返します。

(継承元 DbDataReader)
GetSchemaTableAsync(CancellationToken)

これは GetSchemaTable() の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 必要に応じて、cancellationToken を優先できます。 既定の実装は同期 GetSchemaTable() コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 GetSchemaTable() によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

(継承元 DbDataReader)
GetSqlBinary(Int32)

指定した列の値を SqlBinary として取得します。

GetSqlBoolean(Int32)

指定した列の値を SqlBoolean として取得します。

GetSqlByte(Int32)

指定した列の値を SqlByte として取得します。

GetSqlBytes(Int32)

指定した列の値を SqlBytes として取得します。

GetSqlChars(Int32)

指定した列の値を SqlChars として取得します。

GetSqlDateTime(Int32)

指定した列の値を SqlDateTime として取得します。

GetSqlDecimal(Int32)

指定した列の値を SqlDecimal として取得します。

GetSqlDouble(Int32)

指定した列の値を SqlDouble として取得します。

GetSqlGuid(Int32)

指定した列の値を SqlGuid として取得します。

GetSqlInt16(Int32)

指定した列の値を SqlInt16 として取得します。

GetSqlInt32(Int32)

指定した列の値を SqlInt32 として取得します。

GetSqlInt64(Int32)

指定した列の値を SqlInt64 として取得します。

GetSqlMoney(Int32)

指定した列の値を SqlMoney として取得します。

GetSqlSingle(Int32)

指定した列の値を SqlSingle として取得します。

GetSqlString(Int32)

指定した列の値を SqlString として取得します。

GetSqlValue(Int32)

指定した列のデータ値を SQL Server 型として返します。

GetSqlValues(Object[])

レコードを構成するすべての列について、SQL Server のデータ型で表現されている値を含む Object の配列に格納します。

GetSqlXml(Int32)

指定した列の値を XML 値として取得します。

GetStream(Int32)

バイナリ、イメージ、varbinary、UDT およびバリアント データ型を Stream として取得します。

GetStream(Int32)

指定された列からデータを取得する目的でストリームを取得します。

(継承元 DbDataReader)
GetString(Int32)

指定した列の値を文字列として取得します。

GetTextReader(Int32)

Char、Nchar、Ntext、Nvarchar、テキスト、varchar および VARIANT データ型を TextReaderとして取得します。

GetTextReader(Int32)

列からデータを取得する目的でテキスト リーダーを取得します。

(継承元 DbDataReader)
GetTimeSpan(Int32)

指定した列の値を TimeSpan オブジェクトとして取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetValue(Int32)

指定した列の値をネイティブ形式で取得します。

GetValues(Object[])

オブジェクトの配列に現在行の列値を設定します。

GetXmlReader(Int32)

XmlReaderとして XML 型のデータを取得します。

InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

指定した CommandBehaviorSqlDataReader の動作と一致するかどうかを判断します。

IsDBNull(Int32)

列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します。

IsDBNullAsync(Int32)

列に格納されている値が存在しない値または欠損値かどうかを示す値を非同期で取得します。

(継承元 DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

列に格納されている値が存在しない値または欠損値かどうかを示す値を取得する IsDBNull(Int32) の非同期バージョン。

キャンセル トークンを使用すると、コマンド タイムアウトが経過する前に操作を破棄するように要求できます。 例外は、返されたタスク オブジェクトによって報告されます。

IsDBNullAsync(Int32, CancellationToken)

列に格納されている値が存在しない値または欠損値かどうかを示す値を非同期で取得します。

(継承元 DbDataReader)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
NextResult()

バッチ Transact-SQL ステートメントの結果を読み込むときに、データ リーダーを次の結果に進めます。

NextResultAsync()

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

(継承元 DbDataReader)
NextResultAsync(CancellationToken)

の非同期バージョン NextResult()。バッチ Transact-SQL ステートメントの結果を読み取るときに、データ リーダーを次の結果に進めます。

キャンセル トークンを使用すると、コマンド タイムアウトが経過する前に操作を破棄するように要求できます。 例外は、返されたタスク オブジェクトによって報告されます。

NextResultAsync(CancellationToken)

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

(継承元 DbDataReader)
Read()

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

ReadAsync()

結果セット内の次のレコードにリーダーを非同期で進めます。

(継承元 DbDataReader)
ReadAsync(CancellationToken)

次のレコードに Read() を進める SqlDataReader の非同期バージョン。

キャンセル トークンを使用すると、コマンド タイムアウトが経過する前に操作を破棄するように要求できます。 例外は、返されたタスク オブジェクトによって報告されます。

ReadAsync(CancellationToken)

結果セット内の次のレコードにリーダーを非同期で進めます。

(継承元 DbDataReader)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IDataReader.Close()

このメンバーの詳細については、「Close()」をご覧ください。

(継承元 DbDataReader)
IDataReader.GetSchemaTable()

このメンバーの詳細については、「GetSchemaTable()」をご覧ください。

(継承元 DbDataReader)
IDataRecord.GetData(Int32)

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

IDataRecord.GetData(Int32)

このメンバーの詳細については、「GetData(Int32)」をご覧ください。

(継承元 DbDataReader)
IDisposable.Dispose()

データ リーダーによって使用されているすべてのリソースを解放します。

IEnumerable.GetEnumerator()

項目のコレクションを反復処理するために使用できる列挙子を返します。

拡張メソッド

CanGetColumnSchema(DbDataReader)

DbDataReader が列スキーマを取得できるかどうかを示す値を取得します。

GetColumnSchema(DbDataReader)

DbDataReader 用に、列のスキーマ (DbColumn コレクション) を取得します。

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

こちらもご覧ください