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 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.