SqlCommand.ExecuteReader Método

Definición

Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader.

Sobrecargas

ExecuteReader()

Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader.

ExecuteReader(CommandBehavior)

Envía CommandText a Connection y crea un SqlDataReader mediante uno de los valores de CommandBehavior.

ExecuteReader()

Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader.

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

Devoluciones

Un objeto SqlDataReader.

Excepciones

Se usó un SqlDbType valor distinto de Binary o VarBinary cuando Value se estableció Streamen . Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

o bien

Se usó un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml cuando Value se estableció TextReaderen .

o bien

Se usó un SqlDbType valor distinto de Xml cuando Value se estableció XmlReaderen .

Se produjo una excepción al ejecutar el comando contra una fila bloqueada. Esta excepción no se genera cuando se usa Microsoft .NET Framework versión 1.0.

o bien

Se agotó el tiempo de espera durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

El estado actual de la conexión es cerrado. ExecuteReader() requiere una SqlConnection abierta.

o bien

La SqlConnection se cerró o se interrumpió durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Se produjo un error en un objeto Stream, XmlReader o TextReader durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Ejemplos

En el ejemplo siguiente se crea un SqlCommandy, a continuación, se ejecuta pasando una cadena que es una instrucción SELECT de Transact-SQL y una cadena que se va a usar para conectarse al origen de datos.

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

        SqlCommand command = new SqlCommand(queryString, connection);
        using(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()
        Try
            While reader.Read()
                Console.WriteLine("{0}", reader(0))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
End Sub

Comentarios

Cuando la CommandType propiedad se establece StoredProcedureen , la CommandText propiedad debe establecerse en el nombre del procedimiento almacenado. El comando ejecuta este procedimiento almacenado cuando se llama a ExecuteReader.

Nota

Si una transacción está interbloqueada, es posible que no se produzca una excepción hasta Read que se llame a .

La característica de conjunto de resultados activos múltiples (MARS) permite realizar varias acciones con la misma conexión.

Si usa ExecuteReader o BeginExecuteReader para acceder a datos XML, SQL Server devolverá resultados XML mayores de 2033 caracteres de longitud en varias filas de 2033 caracteres cada uno. Para evitar este comportamiento, use ExecuteXmlReader o BeginExecuteXmlReader para leer consultas FOR XML.

Consulte también

Se aplica a

ExecuteReader(CommandBehavior)

Envía CommandText a Connection y crea un SqlDataReader mediante uno de los valores de CommandBehavior.

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
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader

Parámetros

behavior
CommandBehavior

Uno de los valores de CommandBehavior.

Devoluciones

Un objeto SqlDataReader.

Excepciones

Se usó un SqlDbType valor distinto de Binary o VarBinary cuando Value se estableció Streamen . Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

o bien

Se usó un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml cuando Value se estableció TextReaderen .

o bien

Se usó un SqlDbType valor distinto de Xml cuando Value se estableció XmlReaderen .

Se agotó el tiempo de espera durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Se produjo un error en un objeto Stream, XmlReader o TextReader durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

La SqlConnection se cerró o se interrumpió durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Ejemplos

En el ejemplo siguiente se crea un SqlCommandy, a continuación, se ejecuta pasando una cadena que es una instrucción SELECT de Transact-SQL y una cadena que se va a usar para conectarse al origen de datos. El valor de CommandBehavior está establecido en CloseConnection.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        connection.Open();
        using(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)
        Try
            While reader.Read()
                Console.WriteLine("{0}", reader(0))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
End Sub

Comentarios

Cuando la CommandType propiedad se establece StoredProcedureen , la CommandText propiedad debe establecerse en el nombre del procedimiento almacenado. El comando ejecuta este procedimiento almacenado cuando se llama a ExecuteReader.

Nota

Use SequentialAccess para recuperar valores grandes y datos binarios. De lo contrario, puede producirse una OutOfMemoryException excepción y se cerrará la conexión.

La característica de conjunto de resultados activos múltiples (MARS) permite realizar varias acciones con la misma conexión.

Si usa ExecuteReader o BeginExecuteReader para acceder a datos XML, SQL Server devolverá resultados XML mayores de 2033 caracteres de longitud en varias filas de 2033 caracteres cada uno. Para evitar este comportamiento, use ExecuteXmlReader o BeginExecuteXmlReader para leer consultas FOR XML.

Consulte también

Se aplica a