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 ();
member 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

注釈

プロパティがにStoredProcedure設定されているCommandText場合、プロパティはストアドプロシージャの名前に設定する必要があります。 CommandTypeWhen 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 BeginExecuteReaderを使用して xml データにアクセスする場合、SQL Server は2033文字を超える xml 結果をそれぞれ2033文字の複数行の長さで返します。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. この動作を回避するにExecuteXmlReaderBeginExecuteXmlReader 、またはを使用して 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);
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) 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.

ストリーミング操作中にタイムアウトが発生しました。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

注釈

プロパティがにStoredProcedure設定されているCommandText場合、プロパティはストアドプロシージャの名前に設定する必要があります。 CommandTypeWhen 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 BeginExecuteReaderを使用して xml データにアクセスする場合、SQL Server は2033文字を超える xml 結果をそれぞれ2033文字の複数行の長さで返します。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. この動作を回避するにExecuteXmlReaderBeginExecuteXmlReader 、またはを使用して FOR XML クエリを読み取ります。To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

こちらもご覧ください

適用対象