SqlCommand.ExecuteReader Méthode

Définition

Envoie CommandText à Connection et génère un SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

Surcharges

ExecuteReader()

Envoie CommandText à Connection et génère un SqlDataReader.Sends the CommandText to the Connection and builds a SqlDataReader.

ExecuteReader(CommandBehavior)

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs CommandBehavior.Sends the CommandText to the Connection, and builds a SqlDataReader using one of the CommandBehavior values.

ExecuteReader()

Envoie CommandText à Connection et génère un 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

Retours

Exceptions

Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value avait la valeur Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

- ou --or-

Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value avait la valeur TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- ou --or-

Un SqlDbType autre que Xml a été utilisé quand Value avait la valeur XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Une exception s’est produite pendant l’exécution de la commande sur une ligne verrouillée.An exception occurred while executing the command against a locked row. Cette exception n’est pas générée quand vous utilisez Microsoft .NET Framework version 1.0.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

- ou --or-

Un délai d’attente a été dépassé pendant une opération de diffusion en continu.A timeout occurred during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

L’état actuel de la connexion est fermé.The current state of the connection is closed. ExecuteReader() requiert un SqlConnection ouvert.ExecuteReader() requires an open SqlConnection.

- ou --or-

La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu.The SqlConnection closed or dropped during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

Une erreur s’est produite dans un objet Stream, XmlReader ou TextReader pendant une opération de diffusion en continu.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

L’objet Stream, XmlReader ou TextReader a été fermé pendant une opération de diffusion en continu.The Stream, XmlReader or TextReader object was closed during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

Exemples

L’exemple suivant crée une SqlCommand, puis l’exécute en passant une chaîne qui est une instruction Transact-SQL SELECT et une chaîne à utiliser pour se connecter à la source de données.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

Remarques

Lorsque la propriété CommandType est définie sur StoredProcedure, la propriété CommandText doit être définie sur le nom de la procédure stockée.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. La commande exécute cette procédure stockée lorsque vous appelez ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Notes

Si une transaction est bloquée, une exception ne peut pas être levée tant que Read n’est pas appelé.If a transaction is deadlocked, an exception may not be thrown until Read is called.

La fonctionnalité MARS (Multiple Active Result Set) autorise plusieurs actions à l’aide de la même connexion.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Si vous utilisez ExecuteReader ou BeginExecuteReader pour accéder aux données XML, SQL Server retourne tous les résultats XML d’une longueur supérieure à 2 033 caractères dans plusieurs lignes de 2 033 caractères chacune.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. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader pour lire les requêtes FOR XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Voir aussi

ExecuteReader(CommandBehavior)

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs 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

Paramètres

behavior
CommandBehavior

Une des valeurs de l'objet CommandBehavior.One of the CommandBehavior values.

Retours

Exceptions

Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value avait la valeur Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

- ou --or-

Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value avait la valeur TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- ou --or-

Un SqlDbType autre que Xml a été utilisé quand Value avait la valeur XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Un délai d’attente a été dépassé pendant une opération de diffusion en continu.A timeout occurred during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

Une erreur s’est produite dans un objet Stream, XmlReader ou TextReader pendant une opération de diffusion en continu.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu.The SqlConnection closed or dropped during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

L’objet Stream, XmlReader ou TextReader a été fermé pendant une opération de diffusion en continu.The Stream, XmlReader or TextReader object was closed during a streaming operation. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.For more information about streaming, see SqlClient Streaming Support.

Exemples

L’exemple suivant crée une SqlCommand, puis l’exécute en passant une chaîne qui est une instruction Transact-SQL SELECT et une chaîne à utiliser pour se connecter à la source de données.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. CommandBehavior a la valeur 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

Remarques

Lorsque la propriété CommandType est définie sur StoredProcedure, la propriété CommandText doit être définie sur le nom de la procédure stockée.When the CommandType property is set to StoredProcedure, the CommandText property should be set to the name of the stored procedure. La commande exécute cette procédure stockée lorsque vous appelez ExecuteReader.The command executes this stored procedure when you call ExecuteReader.

Notes

Utilisez SequentialAccess pour récupérer des valeurs volumineuses et des données binaires.Use SequentialAccess to retrieve large values and binary data. Dans le cas contraire, une OutOfMemoryException peut se produire et la connexion est fermée.Otherwise, an OutOfMemoryException might occur and the connection will be closed.

La fonctionnalité MARS (Multiple Active Result Set) autorise plusieurs actions à l’aide de la même connexion.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

Si vous utilisez ExecuteReader ou BeginExecuteReader pour accéder aux données XML, SQL Server retourne tous les résultats XML d’une longueur supérieure à 2 033 caractères dans plusieurs lignes de 2 033 caractères chacune.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. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader pour lire les requêtes FOR XML.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

Voir aussi

S’applique à