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.
Envoie le CommandText fichier à l’objet Connection et génère un SqlDataReader.
Surcharges
| Nom | Description |
|---|---|
| ExecuteReader() |
Envoie le CommandText fichier à l’objet Connection et génère un SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Envoie la CommandText valeur à l’objet Connection, et génère une SqlDataReader à l’aide de l’une CommandBehavior des valeurs. |
ExecuteReader()
Envoie le CommandText fichier à l’objet Connection et génère un 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
Retours
Objet SqlDataReader.
Exceptions
Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value il a été défini sur Stream. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
- ou -
Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value il a été défini sur TextReader.
- ou -
Un SqlDbType autre que Xml a été utilisé lorsqu’il Value a été défini sur XmlReader.
Une exception s’est produite lors de l’exécution de la commande sur une ligne verrouillée. Cette exception n’est pas générée lorsque vous utilisez Microsoft .NET Framework version 1.0.
- ou -
Un délai d’expiration s’est produit pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
L’état actuel de la connexion est fermé. ExecuteReader() nécessite une ouverture SqlConnection.
- ou -
SqlConnection Fermé ou supprimé pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
Une erreur s’est produite dans un objet ou XmlReaderTextReader un Streamobjet pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
L’objet ou TextReader l’objet StreamXmlReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
Exemples
L’exemple suivant crée un SqlCommand, puis l’exécute en passant une chaîne qui est une instruction SELECT Transact-SQL et une chaîne à utiliser pour se connecter à la source de données.
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
Remarques
Lorsque la CommandType propriété est définie StoredProceduresur , 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.
Note
Si une transaction est bloquée, une exception peut ne pas être levée tant qu’elle Read n’est 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 aux données XML, SQL Server retourne tous les résultats XML supérieurs à 2 033 caractères de longueur dans plusieurs lignes de 2 033 caractères chacun. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader lisez des requêtes FOR XML.
Voir aussi
S’applique à
ExecuteReader(CommandBehavior)
Envoie la CommandText valeur à l’objet Connection, et génère une SqlDataReader à l’aide de l’une CommandBehavior des valeurs.
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
Paramètres
- behavior
- CommandBehavior
Une des CommandBehavior valeurs.
Retours
Objet SqlDataReader.
Exceptions
Un SqlDbType autre que Binary ou VarBinary a été utilisé quand Value il a été défini sur Stream. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
- ou -
Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value il a été défini sur TextReader.
- ou -
Un SqlDbType autre que Xml a été utilisé lorsqu’il Value a été défini sur XmlReader.
Un délai d’expiration s’est produit pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
Une erreur s’est produite dans un objet ou XmlReaderTextReader un Streamobjet pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
SqlConnection Fermé ou supprimé pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
L’objet ou TextReader l’objet StreamXmlReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur la diffusion en continu, consultez Prise en charge de la diffusion en continu SqlClient.
Exemples
L’exemple suivant crée un SqlCommand, puis l’exécute en passant une chaîne qui est une instruction SELECT Transact-SQL et une chaîne à utiliser pour se connecter à la source de données. CommandBehavior est défini sur 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
Remarques
Lorsque la CommandType propriété est définie StoredProceduresur , 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.
Note
Permet SequentialAccess de récupérer des valeurs volumineuses et des données binaires. Sinon, un OutOfMemoryException pourrait 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 aux données XML, SQL Server retourne tous les résultats XML supérieurs à 2 033 caractères de longueur dans plusieurs lignes de 2 033 caractères chacun. Pour éviter ce comportement, utilisez ExecuteXmlReader ou BeginExecuteXmlReader lisez des requêtes FOR XML.
Voir aussi
- Connexion et récupération de données dans ADO.NET
- Utilisation du fournisseur de données .NET Framework pour SQL Server
- Vue d'ensemble d’ADO.NET