SqlCommand.ExecuteXmlReader Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odešle do objektu CommandTextConnection a vytvoří XmlReader objekt .
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Návraty
Objekt XmlReader.
Výjimky
Při SqlDbType nastavení na Streamhodnotu byla použita Value jiná hodnota než Binary nebo VarBinary. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
-nebo-
Při SqlDbType nastavení na TextReaderhodnotu se použila Value jiná hodnota než Char, NChar, NVarChar, VarChar nebo Xml.
-nebo-
Při SqlDbType nastavení na XmlReaderhodnotu se použila Value jiná hodnota než XML.
Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka není generována, pokud používáte rozhraní Microsoft .NET Framework verze 1.0.
-nebo-
Během operace streamování došlo k vypršení časového limitu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Zavřený SqlConnection nebo vynechaný během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Během operace streamování došlo v objektu Streamnebo TextReaderXmlReader k chybě. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Objekt Streamnebo XmlReaderTextReader byl zavřený během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
Příklady
Následující příklad vytvoří SqlCommand a pak ho spustí pomocí ExecuteXmlReader. Příklad je předán řetězec, který je Transact-SQL FOR XML SELECT příkaz, a řetězec pro připojení ke zdroji dat.
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
Poznámky
XmlReader vrácená touto metodou nepodporuje asynchronní operace.
Vlastnost CommandText obvykle určuje transact-SQL příkaz s platnou klauzulí FOR XML. Může však také zadat příkaz, CommandText který vrací ntext
nvarchar
nebo data, která obsahují platný kód XML, nebo obsah sloupce definovaného datovým typem xml
.
Typický ExecuteXmlReader dotaz lze naformátovat jako v následujícím příkladu jazyka Microsoft Visual C#:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Tuto metodu lze také použít k načtení sady výsledků výsledků s jedním řádkem s jedním sloupcem, která obsahuje data XML. V tomto případě, pokud je vrácen více než jeden řádek, ExecuteXmlReader metoda připojí XmlReader k hodnotě na prvním řádku a zahodí zbytek sady výsledků.
Funkce MARS (Multiple Active Result Set) umožňuje více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader nebo BeginExecuteReader pro přístup k datům XML, vrátí SQL Server všechny výsledky XML delší než 2 033 znaků ve více řádcích po 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader ke čtení dotazů FOR XML.