SqlCommand.ExecuteReader Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
Un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció TextReaderen .
o bien
Se usó un SqlDbType valor distinto de Xml cuando Value se estableció en XmlReader.
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 StoredProcedure
en , 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 conjunto de resultados activo múltiple (MARS) permite varias acciones mediante la misma conexión.
Si usa ExecuteReader o BeginExecuteReader para obtener acceso a datos XML, SQL Server devolverá cualquier resultado XML superior a 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
Un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció TextReaderen .
o bien
Se usó un SqlDbType valor distinto de Xml cuando Value se estableció en XmlReader.
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 StoredProcedure
en , 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, podría producirse una OutOfMemoryException excepción y se cerrará la conexión.
La característica conjunto de resultados activo múltiple (MARS) permite varias acciones mediante la misma conexión.
Si usa ExecuteReader o BeginExecuteReader para obtener acceso a datos XML, SQL Server devolverá cualquier resultado XML superior a 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
- Conexión y recuperación de datos en ADO.NET
- Uso del proveedor de datos de .NET Framework para SQL Server
- Información general de ADO.NET