SqlCommand.ExecuteReader SqlCommand.ExecuteReader SqlCommand.ExecuteReader SqlCommand.ExecuteReader Method

定義

CommandTextConnection に送信し、SqlDataReader を構築します。Sends the CommandText to the Connection and builds a SqlDataReader.

オーバーロード

ExecuteReader() ExecuteReader() ExecuteReader() ExecuteReader()

CommandTextConnection に送信し、SqlDataReader を構築します。Sends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior)

CommandTextConnection に送信し、CommandBehavior 値のいずれかを使用して SqlDataReader を構築します。Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReader() ExecuteReader() ExecuteReader() ExecuteReader()

CommandTextConnection に送信し、SqlDataReader を構築します。Sends the CommandText to the Connection and builds a SqlDataReader.

public:
 System::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public System.Data.SqlClient.SqlDataReader ExecuteReader ();
override this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader

戻り値

例外

ValueStream に設定されたときに、Binary でも VarBinary でもない SqlDbType が使用されました。A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

または-or-

ValueTextReader に設定されたときに、CharNCharNVarCharVarCharXml のいずれでもない SqlDbType が使用されました。A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- または --or-

ValueXmlReader に設定されたときに、Xml 以外の SqlDbType が使用されました。A SqlDbType other than Xml was used when Value was set to XmlReader.

ロックされた行に対するコマンドの実行中に、例外が発生しました。An exception occurred while executing the command against a locked row. Microsoft .NET Framework バージョン 1.0 を使用している場合は、この例外は生成されません。This exception is not generated when you are using Microsoft .NET Framework version 1.0.

または-or-

ストリーミング操作中にタイムアウトが発生しました。A timeout occurred during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

現在の接続の状態は "終了" です。The current state of the connection is closed. ExecuteReader() には開いている SqlConnection が必要です。ExecuteReader() requires an open SqlConnection.

または-or-

ストリーミング操作中に、SqlConnection が閉じられたか切断されました。The SqlConnection closed or dropped during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトでエラーが発生しました。An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトが閉じられました。The Stream, XmlReader or TextReader object was closed during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

次の例では、作成、 SqlCommand、してでは、TRANSACT-SQL SELECT ステートメントでは、文字列と、データ ソースへの接続に使用する文字列を渡すことで実行します。The following example creates a SqlCommand, and then executes it by passing a string that is a Transact-SQL SELECT statement, and a string to use to connect to the data source.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        connection.Open();

        SqlCommand command = new SqlCommand(queryString, connection);
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()

        Dim command As New SqlCommand(queryString, connection)
        Dim reader As SqlDataReader = command.ExecuteReader()
        While reader.Read()
            Console.WriteLine("{0}", reader(0))
        End While
    End Using
End Sub

注釈

ときに、CommandTypeプロパティに設定されてStoredProcedureCommandTextプロパティは、ストアド プロシージャの名前に設定する必要があります。When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. コマンドを呼び出すときにこのストアド プロシージャを実行しますExecuteReaderします。The command executes this stored procedure when you call ExecuteReader.

注意

までに、例外、トランザクションがデッドロックされている場合スローしないことがありますReadが呼び出されます。If a transaction is deadlocked, an exception may not be thrown until Read is called.

複数のアクティブな結果セット (MARS) 機能では、同じ接続を使用して複数のアクション。The multiple active result set (MARS) feature allows for multiple actions using the same connection.

使用する場合ExecuteReaderまたはBeginExecuteReaderXML データにアクセスする SQL Server は XML で結果が返さ 2,033 文字を超える複数行の各 2,033 文字の長さ。If you use ExecuteReader or BeginExecuteReader to access XML data, SQL Server will return any XML results greater than 2,033 characters in length in multiple rows of 2,033 characters each. この動作を回避するには使用ExecuteXmlReaderまたはBeginExecuteXmlReaderを FOR XML クエリを読み取る。To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

こちらもご覧ください

ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior) ExecuteReader(CommandBehavior)

CommandTextConnection に送信し、CommandBehavior 値のいずれかを使用して SqlDataReader を構築します。Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

public:
 System::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public System.Data.SqlClient.SqlDataReader ExecuteReader (System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader

パラメーター

behavior
CommandBehavior CommandBehavior CommandBehavior CommandBehavior

CommandBehavior 値のいずれか 1 つ。One of the CommandBehavior values.

戻り値

例外

ValueStream に設定されたときに、Binary でも VarBinary でもない SqlDbType が使用されました。A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

- または --or-

ValueTextReader に設定されたときに、CharNCharNVarCharVarCharXml のいずれでもない SqlDbType が使用されました。A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- または --or-

ValueXmlReader に設定されたときに、Xml 以外の SqlDbType が使用されました。A SqlDbType other than Xml was used when Value was set to XmlReader.

ストリーミング操作中にタイムアウトが発生しました。A timeout occurred during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトでエラーが発生しました。An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

ストリーミング操作中に、SqlConnection が閉じられたか切断されました。The SqlConnection closed or dropped during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトが閉じられました。The Stream, XmlReader or TextReader object was closed during a streaming operation. ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。For more information about streaming, see SqlClient Streaming Support.

次の例では、作成、 SqlCommand、してでは、TRANSACT-SQL SELECT ステートメントでは、文字列と、データ ソースへの接続に使用する文字列を渡すことで実行します。The following example creates a SqlCommand, and then executes it by passing a string that is a Transact-SQL SELECT statement, and a string to use to connect to the data source. CommandBehaviorCloseConnection に設定されます。CommandBehavior is set to CloseConnection.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        connection.Open();
        SqlDataReader reader =
            command.ExecuteReader(CommandBehavior.CloseConnection);
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = _
            command.ExecuteReader(CommandBehavior.CloseConnection)
        While reader.Read()
            Console.WriteLine("{0}", reader(0))
        End While
    End Using
End Sub

注釈

ときに、CommandTypeプロパティに設定されてStoredProcedureCommandTextプロパティは、ストアド プロシージャの名前に設定する必要があります。When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. コマンドを呼び出すときにこのストアド プロシージャを実行しますExecuteReaderします。The command executes this stored procedure when you call ExecuteReader.

注意

使用SequentialAccess値が大きいとバイナリ データを取得します。Use SequentialAccess to retrieve large values and binary data. それ以外の場合、OutOfMemoryExceptionが発生して、接続は閉じられます。Otherwise, an OutOfMemoryException might occur and the connection will be closed.

複数のアクティブな結果セット (MARS) 機能では、同じ接続を使用して複数のアクション。The multiple active result set (MARS) feature allows for multiple actions using the same connection.

使用する場合ExecuteReaderまたはBeginExecuteReaderXML データにアクセスする SQL Server は XML で結果が返さ 2,033 文字を超える複数行の各 2,033 文字の長さ。If you use ExecuteReader or BeginExecuteReader to access XML data, SQL Server will return any XML results greater than 2,033 characters in length in multiple rows of 2,033 characters each. この動作を回避するには使用ExecuteXmlReaderまたはBeginExecuteXmlReaderを FOR XML クエリを読み取る。To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

こちらもご覧ください

適用対象