SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader Method

Définition

Envoie CommandText à Connection et génère un objet XmlReader.Sends the CommandText to the Connection and builds an XmlReader object.

public:
 System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader

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.

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 un SqlCommand , puis l’exécute à l' ExecuteXmlReaderaide de.The following example creates a SqlCommand and then executes it using ExecuteXmlReader. L’exemple reçoit une chaîne qui est une instruction Transact-SQL FOR XML SELECT et une chaîne à utiliser pour se connecter à la source de données.The example is passed a string that is a Transact-SQL FOR XML SELECT statement, and a string to use to connect to the data source.

private static void CreateXMLReader(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand(queryString, connection);
        System.Xml.XmlReader reader = command.ExecuteXmlReader();
    }
}
Public Sub CreateXMLReader(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 System.Xml.XmlReader = command.ExecuteXmlReader
    End Using
End Sub

Remarques

Le XmlReader retourné par cette méthode ne prend pas en charge les opérations asynchrones.The XmlReader returned by this method does not support asynchronous operations.

La CommandText propriété spécifie normalement une Transact-SQLTransact-SQL instruction avec une clause FOR XML valide.The CommandText property ordinarily specifies a Transact-SQLTransact-SQL statement with a valid FOR XML clause. Toutefois, CommandText peut également spécifier une instruction qui retourne ntext des nvarchar données ou qui contiennent du code XML valide, ou le contenu d’une colonne xml définie avec le type de données.However, CommandText can also specify a statement that returns ntext or nvarchar data that contains valid XML, or the contents of a column defined with the xml data type.

Une requête ExecuteXmlReader classique peut être mise en forme comme dans l’exemple C# Microsoft Visual suivant :A typical ExecuteXmlReader query can be formatted as in the following Microsoft Visual C# example:

SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);  

Cette méthode peut également être utilisée pour récupérer un jeu de résultats à une seule ligne et une seule colonne qui contient des données XML.This method can also be used to retrieve a single-row, single-column result set that contains XML data. Dans ce cas, si plusieurs lignes sont retournées, la ExecuteXmlReader méthode attache le XmlReader à la valeur sur la première ligne et ignore le reste du jeu de résultats.In this case, if more than one row is returned, the ExecuteXmlReader method attaches the XmlReader to the value on the first row, and discards the rest of the result set.

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 à des données XML, SQL Server renverra 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.

S’applique à

Voir aussi