Sdílet prostřednictvím


SqlCommand.ExecuteXmlReader Metoda

Definice

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

Platí pro

Viz také