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í.
CommandText Odešle objekt a Connection 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
SqlDbType Jiný než Binary nebo VarBinary byl použit při Value nastavení Stream. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
nebo
SqlDbType Jiná hodnota než Char, NChar, NVarChar, VarChar nebo Xml byla použita při Value nastavení TextReader.
nebo
SqlDbType Jiná než Xml byla použita při Value nastavení na XmlReaderhodnotu .
Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka není generována při použití 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 ukončený 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 k chybě nebo StreamXmlReaderTextReader objektu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.
XmlReader Objekt Streamnebo TextReader objekt byl uzavř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 ji spustí pomocí ExecuteXmlReader. Příklad je předán řetězec, který je Transact-SQL příkazu FOR XML SELECT a řetězec, který se použije 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 příkaz Transact-SQL s platnou klauzulí FOR XML. Můžete CommandText však také zadat příkaz, který vrátí ntext nebo nvarchar data obsahující platný KÓD XML, nebo obsah sloupce definovaného s 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 použít také k načtení sady výsledků s jedním řádkem a 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 více aktivních sad výsledků (MARS) umožňuje více akcí pomocí stejného připojení.
Pokud používáte ExecuteReader nebo BeginExecuteReader přistupujete k datům XML, VRÁTÍ SQL Server všechny výsledky XML větší než 2 033 znaků v několika řádcích o 2 033 znacích. Chcete-li se tomuto chování vyhnout, použijte ExecuteXmlReader nebo BeginExecuteXmlReader načtěte dotazy FOR XML.