SqlCommand.ExecuteXmlReader Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Elküldi az CommandText objektumot, Connection és létrehoz egy objektumot XmlReader .
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Válaszok
Egy XmlReader objektum.
Kivételek
A SqlDbTypebináristól vagy a VarBinarytól eltérő függvényt használt a rendszer, amikor Value a beállítás értéke Stream. A streamelésről további információt az SqlClient streamelési támogatásában talál.
-vagy-
A SqlDbTypechar, NChar, NVarChar, VarChar vagy Xml kivételével más is használható volt a beállításnál ValueTextReader.
-vagy-
Az SqlDbTypeXml-fájltól eltérő érték lett használva a ValuebeállításkorXmlReader.
Kivétel történt a parancs zárolt soron való végrehajtása során. Ez a kivétel nem jön létre Microsoft .NET Framework 1.0-s verziójának használatakor.
-vagy-
Időtúllépés történt egy streamelési művelet során. A streamelésről további információt az SqlClient streamelési támogatásában talál.
A SqlConnection streamelési művelet során bezárt vagy elvetett. A streamelésről további információt az SqlClient streamelési támogatásában talál.
Hiba történt egy Stream, XmlReader vagy TextReader objektumban egy streamelési művelet során. A streamelésről további információt az SqlClient streamelési támogatásában talál.
Az Stream, XmlReader vagy TextReader objektum egy streamelési művelet során lett bezárva. A streamelésről további információt az SqlClient streamelési támogatásában talál.
Példák
Az alábbi példa létrehoz egy SqlCommand , majd végrehajtja azt a használatával ExecuteXmlReader. A példa egy Transact-SQL XML SELECT utasítást tartalmazó sztringet, valamint egy olyan sztringet ad át, amely az adatforráshoz való csatlakozáshoz használható.
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
Megjegyzések
A metódus által visszaadott XmlReader nem támogatja az aszinkron műveleteket.
A CommandText tulajdonság általában egy érvényes FOR XML záradékkal rendelkező Transact-SQL utasítást ad meg. Megadhat azonban olyan utasítást is, CommandText amely érvényes XML-t vagy ntext adattípussal nvarchar definiált oszlop tartalmát ad vissza xml vagy tartalmaz.
Egy tipikus ExecuteXmlReader lekérdezés a következő Microsoft Visual C#-példa szerint formázható:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Ez a módszer egy xml-adatokat tartalmazó egysoros, egyoszlopos eredménykészlet lekérésére is használható. Ebben az esetben, ha egynél több sort ad vissza, a ExecuteXmlReader metódus az első sor értékét csatolja XmlReader , és elveti az eredményhalmaz többi részét.
A több aktív eredményhalmaz (MARS) funkció több műveletet is lehetővé tesz ugyanazzal a kapcsolattal.
Ha ExecuteReader vagy BeginExecuteReader használatával fér hozzá az XML-adatokhoz, SQL Server minden 2033 karakternél hosszabb XML-eredményt ad vissza 2033 karakternél hosszabb sorokban, egyenként 2033 karakter hosszúságú sorokban. Ennek a viselkedésnek a elkerülése érdekében használja ExecuteXmlReader vagy BeginExecuteXmlReader olvassa el a FOR XML-lekérdezéseket.
A következőre érvényes:
Lásd még
- Az adatok összekapcsolása és lekérése az ADO-ban.NET
A .NET-keretrendszer Data Provider használata SQL Server - ADO.NET áttekintése