エクスポート (0) 印刷
すべて展開

SqlDataReader クラス

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

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)

public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord
public class SqlDataReader extends DbDataReader implements IDataReader, IDisposable, 
	IDataRecord
public class SqlDataReader extends DbDataReader implements IDataReader, IDisposable, 
	IDataRecord

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

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

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

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

メモメモ

パフォーマンスを向上するために、SqlDataReader は不要なオブジェクトまたは不要なデータのコピーを作成しません。そのため、GetValue などのメソッドを複数回呼び出すと、同じオブジェクトへの参照が返されます。GetValue などのメソッドから返されるオブジェクトの基の値を変更する場合は、注意してください。

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

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

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

System.Object
   System.MarshalByRefObject
     System.Data.Common.DbDataReader
      System.Data.SqlClient.SqlDataReader

この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0

コミュニティの追加

追加
表示:
© 2014 Microsoft