SqlCommand.ExecuteXmlReader Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
CommandText Skickar till Connection och skapar ett XmlReader objekt.
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Returer
Ett XmlReader objekt.
Undantag
En SqlDbType annan än Binär eller VarBinary användes när Value var inställd på Stream. Mer information om strömning finns i SqlClient Streaming Support.
-eller-
En SqlDbType annan än Char, NChar, NVarChar, VarChar eller Xml användes när Value var inställd på TextReader.
-eller-
Ett SqlDbType annat än XML användes när Value var inställt på XmlReader.
Ett undantag inträffade när kommandot kördes mot en låst rad. Det här undantaget genereras inte när du använder Microsoft .NET Framework version 1.0.
-eller-
En timeout inträffade under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Den SqlConnection stängda eller borttagna under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Ett fel uppstod i ett Stream- XmlReader eller TextReader -objekt under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Objektet Stream, XmlReader eller TextReader stängdes under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.
Exempel
I följande exempel skapas en SqlCommand och sedan körs den med hjälp av ExecuteXmlReader. Exemplet skickas en sträng som är en Transact-SQL FOR XML SELECT-instruktion och en sträng som ska användas för att ansluta till datakällan.
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
Kommentarer
XmlReader som returneras av den här metoden stöder inte asynkrona åtgärder.
Egenskapen CommandText anger vanligtvis en Transact-SQL-instruktion med en giltig FOR XML-sats. Kan dock CommandText också ange en instruktion som returnerar ntext eller nvarchar data som innehåller giltig XML eller innehållet i en kolumn som definierats med xml datatypen.
En typisk ExecuteXmlReader fråga kan formateras som i följande Microsoft Visual C#-exempel:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Den här metoden kan också användas för att hämta en resultatuppsättning med en rad och en kolumn som innehåller XML-data. I det här fallet, om mer än en rad returneras, ExecuteXmlReader kopplar XmlReader metoden till värdet på den första raden och tar bort resten av resultatuppsättningen.
Funktionen flera aktiva resultatuppsättningar (MARS) möjliggör flera åtgärder med samma anslutning.
Om du använder ExecuteReader eller BeginExecuteReader för att komma åt XML-data returnerar SQL Server xml-resultat som är större än 2 033 tecken långa på flera rader med 2 033 tecken vardera. Undvik det här beteendet genom att använda ExecuteXmlReader eller BeginExecuteXmlReader läsa FOR XML-frågor.