Condividi tramite


SqlCommand.ExecuteXmlReader Metodo

Definizione

Invia all'oggetto CommandTextConnection e compila un XmlReader oggetto .

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

Restituisce

Oggetto XmlReader.

Eccezioni

È stato usato un SqlDbType oggetto diverso da Binary o VarBinary quando Value è stato impostato su Stream. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.

oppure

È stato usato un SqlDbType valore diverso da Char, NChar, NVarChar, VarChar o Xml quando Value è stato impostato su TextReader.

oppure

È stato utilizzato un SqlDbType oggetto diverso da Xml quando Value è stato impostato su XmlReader.

Eccezione durante l'esecuzione del comando su una riga bloccata. Questa eccezione non viene generata quando si usa Microsoft .NET Framework versione 1.0.

oppure

Si è verificato un timeout durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.

Oggetto SqlConnection chiuso o eliminato durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.

Si è verificato un errore in un StreamXmlReader oggetto o TextReader durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.

L'oggetto Streamo XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.

Esempio

Nell'esempio seguente viene creato un SqlCommand oggetto e quindi eseguito usando ExecuteXmlReader. Nell'esempio viene passata una stringa che è un'istruzione FOR XML SELECT Transact-SQL e una stringa da utilizzare per connettersi all'origine dati.

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

Commenti

XmlReader restituito da questo metodo non supporta operazioni asincrone.

La CommandText proprietà specifica in genere un'istruzione Transact-SQL con una clausola FOR XML valida. Tuttavia, CommandText può anche specificare un'istruzione che restituisce ntext o nvarchar dati che contengono codice XML valido o il contenuto di una colonna definita con il xml tipo di dati.

Una query tipica ExecuteXmlReader può essere formattata come nell'esempio di Microsoft Visual C# seguente:

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

Questo metodo può essere usato anche per recuperare un set di risultati a riga singola e a colonna singola che contiene dati XML. In questo caso, se vengono restituite più righe, il ExecuteXmlReader metodo associa l'oggetto XmlReader al valore nella prima riga e rimuove il resto del set di risultati.

La funzionalità mars (Multiple Active Result Set) consente più azioni usando la stessa connessione.

Se si usa ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà tutti i risultati XML maggiori di 2.033 caratteri con lunghezza in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere query FOR XML.

Si applica a

Vedi anche