SqlCommand.ExecuteReader Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
ExecuteReader() |
Envoie à CommandText et Connection génère un SqlDataReader . |
ExecuteReader(CommandBehavior) |
Envoie à CommandText et Connection génère un SqlDataReader à l’aide de l’une CommandBehavior des valeurs . |
ExecuteReader()
Envoie à CommandText et Connection génère un SqlDataReader .
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader ();
override this.ExecuteReader : unit -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
Retours
Objet SqlDataReader.
Exceptions
Autre SqlDbType que Binary ou VarBinary a été utilisé lorsque Value a été défini sur Stream . Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
- ou -
Autre SqlDbType que Char, NChar, NVarChar, VarChar ou Xml a été utilisé lorsque Value a été défini sur TextReader .
-ou-
Un SqlDbType autre que Xml a été utilisé lorsque Value a été défini sur 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() nécessite un ouvert SqlConnection .
- 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 Stream objet ou XmlReaderTextReader 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 ou XmlReaderTextReader 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.
// <Snippet1>
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
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]));
}
}
}
// </Snippet1>
}
Remarques
Lorsque la propriété a la CommandTypeStoredProcedure
valeur , 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 d’effectuer 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.
S’applique à
ExecuteReader(CommandBehavior)
Envoie à CommandText et Connection génère un SqlDataReader à l’aide de l’une CommandBehavior des valeurs .
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader (System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
Paramètres
- behavior
- CommandBehavior
Une des valeurs de l'objet CommandBehavior.
Retours
Objet SqlDataReader.
Exceptions
Autre SqlDbType que Binary ou VarBinary a été utilisé lorsque Value a été défini sur Stream . Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
- ou -
Autre SqlDbType que Char, NChar, NVarChar, VarChar ou Xml a été utilisé lorsque Value a été défini sur TextReader .
-ou-
Un SqlDbType autre que Xml a été utilisé lorsque Value a été défini sur 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 Stream objet ou XmlReaderTextReader 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 ou XmlReaderTextReader 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.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
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]));
}
}
}
Remarques
Lorsque la propriété a la CommandTypeStoredProcedure
valeur , 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. Sinon, une OutOfMemoryException peut se produire et la connexion sera fermée.
La fonctionnalité MARS (Multiple Active Result Set) permet d’effectuer 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.