SqlCommand.ExecuteXmlReader Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt het CommandText object naar het Connection object verzonden en gebouwd XmlReader .
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Retouren
Een XmlReader object.
Uitzonderingen
Een SqlDbType andere dan Binary of VarBinary is gebruikt wanneer Value deze is ingesteld op Stream. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
– of –
Een SqlDbType andere naam dan Char, NChar, NVarChar, VarChar of XML is gebruikt wanneer Value deze is ingesteld op TextReader.
– of –
Er is een SqlDbType andere dan XML gebruikt wanneer Value deze is ingesteld op XmlReader.
Er is een uitzondering opgetreden tijdens het uitvoeren van de opdracht voor een vergrendelde rij. Deze uitzondering wordt niet gegenereerd wanneer u Microsoft .NET Framework versie 1.0 gebruikt.
– of –
Er is een time-out opgetreden tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
De SqlConnection gesloten of verbroken tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Er is een fout opgetreden in een Streamof XmlReaderTextReader object tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Het Streamobject XmlReader of TextReader het object is gesloten tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Voorbeelden
In het volgende voorbeeld wordt een SqlCommand gemaakt en vervolgens uitgevoerd met behulp van ExecuteXmlReader. Het voorbeeld wordt doorgegeven aan een tekenreeks die een Transact-SQL FOR XML SELECT-instructie is en een tekenreeks die moet worden gebruikt om verbinding te maken met de gegevensbron.
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
Opmerkingen
XmlReader die door deze methode wordt geretourneerd, biedt geen ondersteuning voor asynchrone bewerkingen.
De eigenschap CommandText specificeert gewoonlijk een Transact-SQL-instructie met een geldige FOR XML-component. U CommandText kunt echter ook een instructie opgeven die geldige XML retourneert ntext of nvarchar gegevens bevat, of de inhoud van een kolom die is gedefinieerd met het xml gegevenstype.
Een typische ExecuteXmlReader-query kan worden opgemaakt zoals in het volgende Microsoft Visual C#-voorbeeld:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Deze methode kan ook worden gebruikt voor het ophalen van een resultatenset met één rij en één kolom die XML-gegevens bevat. Als er meer dan één rij wordt geretourneerd, wordt de ExecuteXmlReader methode XmlReader gekoppeld aan de waarde in de eerste rij en wordt de rest van de resultatenset verwijderd.
Met de functie voor meerdere actieve resultatensets (MARS) kunt u meerdere acties uitvoeren met dezelfde verbinding.
Als u ExecuteReader of BeginExecuteReader gebruikt voor toegang tot XML-gegevens, retourneert SQL Server xml-resultaten die langer zijn dan 2033 tekens in meerdere rijen van elk 2033 tekens. Gebruik of BeginExecuteXmlReader lees FOR XML-query's om dit gedrag ExecuteXmlReader te voorkomen.