次の方法で共有


SqlDataReader クラス

定義

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

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

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

using Microsoft.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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}

注釈

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 ステートメントによって変更、挿入、または削除された行数を取得します。

SensitivityClassification

を使用して SensitivityClassification 情報を取得します SqlDataReader

VisibleFieldCount

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

メソッド

Close()

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

Dispose(Boolean)

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

GetBoolean(Int32)

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

GetByte(Int32)

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

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

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

GetChar(Int32)

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

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

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

GetColumnSchema()

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

GetDataTypeName(Int32)

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

GetDateTime(Int32)

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

GetDateTimeOffset(Int32)

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

GetDecimal(Int32)

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

GetDouble(Int32)

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

GetEnumerator()

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

GetFieldType(Int32)

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

GetFieldValue<T>(Int32)

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

GetFieldValueAsync<T>(Int32, CancellationToken)

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

GetFloat(Int32)

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

GetGuid(Int32)

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

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

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

GetOrdinal(String)

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

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

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

GetProviderSpecificValues(Object[])

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

GetSchemaTable()

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

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 として取得します。

GetString(Int32)

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

GetTextReader(Int32)

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

GetTimeSpan(Int32)

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

GetValue(Int32)

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

GetValues(Object[])

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

GetXmlReader(Int32)

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

IsCommandBehavior(CommandBehavior)

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

IsDBNull(Int32)

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

IsDBNullAsync(Int32, CancellationToken)

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

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

NextResult()

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

NextResultAsync(CancellationToken)

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

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

Read()

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

ReadAsync(CancellationToken)

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

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

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

IDataRecord.GetData(Int32)

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

適用対象