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

Definición

Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

Sobrecargas

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

Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

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

Envía CommandText a Connection y crea un SqlDataReader mediante uno de los valores de CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

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

Envía la propiedad CommandText a Connection y crea un objeto 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

Devoluciones

Excepciones

Un valor SqlDbType distinto a Binary o VarBinary se usó cuando Value se estableció en Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

o bien-or-

Un valor SqlDbType distinto a Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció en TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

O bien-or-

Se usó un SqlDbType distinto de Xml cuando Value se estableció en XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Se produjo una excepción al ejecutar el comando contra una fila bloqueada.An exception occurred while executing the command against a locked row. Esta excepción no se genera cuando se usa Microsoft .NET Framework versión 1.0.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

O bien-or-

Se agotó el tiempo de espera durante una operación de streaming.A timeout occurred during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

El estado actual de la conexión es cerrado.The current state of the connection is closed. ExecuteReader() requiere una SqlConnection abierta.ExecuteReader() requires an open SqlConnection.

O bien-or-

La SqlConnection se cerró o se interrumpió durante una operación de streaming.The SqlConnection closed or dropped during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Se produjo un error en un objeto Stream, XmlReader o TextReader durante una operación de streaming.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de streaming.The Stream, XmlReader or TextReader object was closed during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Ejemplos

En el ejemplo siguiente se SqlCommandcrea un y, a continuación, se ejecuta pasando una cadena que es una instrucción SELECT de Transact-SQL y una cadena que se utiliza para conectar con el origen de datos.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

Comentarios

Cuando la CommandType propiedad está establecida en StoredProcedure, la CommandText propiedad debe establecerse en el nombre del procedimiento almacenado.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. El comando ejecuta este procedimiento almacenado cuando se llama a ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Nota

Si una transacción está en interbloqueo, puede que no se produzca Read una excepción hasta que se llame a.If a transaction is deadlocked, an exception may not be thrown until Read is called.

La característica de conjunto de resultados activos múltiples (MARS) permite varias acciones con la misma conexión.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Si usa ExecuteReader o BeginExecuteReader para tener acceso a los datos XML, SQL Server devolverá los resultados XML de más de 2.033 caracteres de longitud en varias filas de 2.033 caracteres cada uno.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. Para evitar este comportamiento, use ExecuteXmlReader o BeginExecuteXmlReader para leer las consultas for XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Consulte también:

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

Envía CommandText a Connection y crea un SqlDataReader mediante uno de los valores de CommandBehavior.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

Parámetros

Devoluciones

Excepciones

Un valor SqlDbType distinto a Binary o VarBinary se usó cuando Value se estableció en Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

o bien-or-

Un valor SqlDbType distinto a Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció en TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

O bien-or-

Se usó un SqlDbType distinto de Xml cuando Value se estableció en XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Se agotó el tiempo de espera durante una operación de streaming.A timeout occurred during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Se produjo un error en un objeto Stream, XmlReader o TextReader durante una operación de streaming.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

La SqlConnection se cerró o se interrumpió durante una operación de streaming.The SqlConnection closed or dropped during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de streaming.The Stream, XmlReader or TextReader object was closed during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Ejemplos

En el ejemplo siguiente se SqlCommandcrea un y, a continuación, se ejecuta pasando una cadena que es una instrucción SELECT de Transact-SQL y una cadena que se utiliza para conectar con el origen de datos.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. El valor de CommandBehavior está establecido en CloseConnection.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

Comentarios

Cuando la CommandType propiedad está establecida en StoredProcedure, la CommandText propiedad debe establecerse en el nombre del procedimiento almacenado.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. El comando ejecuta este procedimiento almacenado cuando se llama a ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Nota

Use SequentialAccess para recuperar valores grandes y datos binarios.Use SequentialAccess to retrieve large values and binary data. De lo contrario OutOfMemoryException , podría producirse una excepción y se cerrará la conexión.Otherwise, an OutOfMemoryException might occur and the connection will be closed.

La característica de conjunto de resultados activos múltiples (MARS) permite varias acciones con la misma conexión.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Si usa ExecuteReader o BeginExecuteReader para tener acceso a los datos XML, SQL Server devolverá los resultados XML de más de 2.033 caracteres de longitud en varias filas de 2.033 caracteres cada uno.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. Para evitar este comportamiento, use ExecuteXmlReader o BeginExecuteXmlReader para leer las consultas for XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Consulte también:

Se aplica a