SqlCommand.ExecuteXmlReader Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Invia la proprietà CommandText alla proprietà Connection e compila un oggetto XmlReader.
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
Un SqlDbType oggetto diverso da Binary o VarBinary è stato usato quando Value è stato impostato su Stream . Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
-oppure-
Un SqlDbType oggetto diverso da Char, NChar, NVarChar, VarChar o Xml è stato usato quando Value è stato impostato su TextReader .
-oppure-
È SqlDbType stato utilizzato un valore diverso da Xml quando Value è stato impostato su XmlReader .
È stata generata un'eccezione durante l'esecuzione del comando su una riga bloccata. Tale eccezione non viene generata quando si usa Microsoft .NET Framework Versione 1.0.
-oppure-
Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Si è verificato un errore in un Stream oggetto o XmlReaderTextReader durante un'operazione di streaming. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
L'oggetto Stream o XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.
Esempio
Nell'esempio seguente viene creato un oggetto SqlCommand e quindi viene eseguito usando ExecuteXmlReader. Nell'esempio viene passata una stringa che è un'istruzione Transact-SQL FOR XML SELECT e una stringa da usare per connettersi all'origine dati.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
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();
}
}
Commenti
XmlReader restituito da questo metodo non supporta le 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 utilizzato 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 utilizza ExecuteReader o BeginExecuteReader per accedere ai dati XML, SQL Server restituirà risultati XML maggiori di 2.033 caratteri in più righe di 2.033 caratteri ciascuno. Per evitare questo comportamento, utilizzare ExecuteXmlReader o BeginExecuteXmlReader per leggere le query FOR XML.