Lire en anglais

Partager via


SqlCommand.ExecuteReader Méthode

Définition

Envoie CommandText à Connection et génère un SqlDataReader.

Surcharges

ExecuteReader()

Envoie CommandText à Connection et génère un SqlDataReader.

ExecuteReader(CommandBehavior)

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs CommandBehavior.

ExecuteReader()

Source:
System.Data.SqlClient.notsupported.cs

Envoie CommandText à Connection et génère un SqlDataReader.

C#
public System.Data.SqlClient.SqlDataReader ExecuteReader ();

Retours

Objet SqlDataReader.

Exceptions

Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value avait la valeur Stream. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

- ou -

Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value a été défini sur TextReader.

- ou -

Un SqlDbType autre que Xml a été utilisé quand Value avait la valeur XmlReader.

Une exception s’est produite pendant l’exécution de la commande sur une ligne verrouillée. Cette exception n’est pas générée quand vous utilisez Microsoft .NET Framework version 1.0.

- ou -

Un délai d’attente a été dépassé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

L’état actuel de la connexion est fermé. ExecuteReader() requiert un SqlConnection ouvert.

- ou -

La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Une erreur s’est produite dans un objet Stream, XmlReader ou TextReader pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

L’objet Stream, XmlReader ou TextReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Exemples

L’exemple suivant crée un 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.

C#
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]));
            }
        }
    }
}

Remarques

Lorsque la propriété a la CommandTypeStoredProcedurevaleur , la CommandText propriété doit être définie sur le nom de la procédure stockée. La commande exécute cette procédure stockée lorsque vous appelez ExecuteReader.

Notes

Si une transaction est bloquée, une exception ne peut pas être levée tant qu’elle n’est Read pas appelée.

La fonctionnalité MARS (Multiple Active Result Set) permet plusieurs actions à l’aide de la même connexion.

Si vous utilisez ExecuteReader ou BeginExecuteReader pour accéder à des données XML, SQL Server retourne les résultats XML d’une longueur supérieure à 2 033 caractères dans plusieurs lignes de 2 033 caractères chacune. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader pour lire des requêtes FOR XML.

Voir aussi

S’applique à

.NET 9 (package-provided) et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

ExecuteReader(CommandBehavior)

Source:
System.Data.SqlClient.notsupported.cs

Envoie le CommandText au Connection, et génère un SqlDataReader à l’aide de l’une des valeurs CommandBehavior.

C#
public System.Data.SqlClient.SqlDataReader ExecuteReader (System.Data.CommandBehavior behavior);

Paramètres

behavior
CommandBehavior

Une des valeurs de l'objet CommandBehavior.

Retours

Objet SqlDataReader.

Exceptions

Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value avait la valeur Stream. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

- ou -

Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value a été défini sur TextReader.

- ou -

Un SqlDbType autre que Xml a été utilisé quand Value avait la valeur XmlReader.

Un délai d’attente a été dépassé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Une erreur s’est produite dans un objet Stream, XmlReader ou TextReader pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

L’objet Stream, XmlReader ou TextReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Exemples

L’exemple suivant crée un 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. CommandBehavior a la valeur CloseConnection.

C#
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]));
            }
        }
    }
}

Remarques

Lorsque la propriété a la CommandTypeStoredProcedurevaleur , la CommandText propriété doit être définie sur le nom de la procédure stockée. La commande exécute cette procédure stockée lorsque vous appelez ExecuteReader.

Notes

Utilisez SequentialAccess pour récupérer des valeurs volumineuses et des données binaires. Dans le cas contraire, un OutOfMemoryException risque peut se produire et la connexion sera fermée.

La fonctionnalité MARS (Multiple Active Result Set) permet plusieurs actions à l’aide de la même connexion.

Si vous utilisez ExecuteReader ou BeginExecuteReader pour accéder à des données XML, SQL Server retourne les résultats XML d’une longueur supérieure à 2 033 caractères dans plusieurs lignes de 2 033 caractères chacune. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader pour lire des requêtes FOR XML.

Voir aussi

S’applique à

.NET 9 (package-provided) et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)