SqlCommand.ExecuteXmlReader Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
CommandText Mengirim ke Connection dan membangun XmlReader objek.
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Mengembalikan
Sebuah objekXmlReader.
Pengecualian
Selain SqlDbTypeBiner atau VarBinary digunakan ketika Value diatur ke Stream. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.
-atau-
Selain SqlDbTypeChar, NChar, NVarChar, VarChar, atau Xml digunakan saat Value diatur ke TextReader.
-atau-
Selain SqlDbTypeXml digunakan ketika Value diatur ke XmlReader.
Terjadi pengecualian saat menjalankan perintah terhadap baris terkunci. Pengecualian ini tidak dihasilkan saat Anda menggunakan Microsoft .NET Framework versi 1.0.
-atau-
Waktu habis terjadi selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.
Ditutup SqlConnection atau dihilangkan selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.
Terjadi kesalahan dalam Streamobjek , XmlReader atau TextReader selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.
Objek Stream, XmlReader atau TextReader ditutup selama operasi streaming. Untuk informasi selengkapnya tentang streaming, lihat Dukungan Streaming SqlClient.
Contoh
Contoh berikut membuat SqlCommand lalu menjalankannya menggunakan ExecuteXmlReader. Contohnya diteruskan string yang merupakan pernyataan TRANSACT-SQL FOR XML SELECT, dan string yang digunakan untuk menyambungkan ke sumber data.
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
Keterangan
XmlReader yang dikembalikan oleh metode ini tidak mendukung operasi asinkron.
Properti CommandText biasanya menentukan pernyataan Transact-SQL dengan klausa FOR XML yang valid. Namun, CommandText juga dapat menentukan pernyataan yang mengembalikan ntext
atau nvarchar
data yang berisi XML yang valid, atau konten kolom yang ditentukan dengan xml
jenis data.
Kueri umum ExecuteXmlReader dapat diformat seperti dalam contoh Microsoft Visual C# berikut:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Metode ini juga dapat digunakan untuk mengambil kumpulan hasil satu baris kolom tunggal yang berisi data XML. Dalam hal ini, jika lebih dari satu baris dikembalikan, ExecuteXmlReader metode melampirkan XmlReader ke nilai pada baris pertama, dan membuang sisa kumpulan hasil.
Fitur beberapa tataan hasil aktif (MARS) memungkinkan beberapa tindakan menggunakan koneksi yang sama.
Jika Anda menggunakan ExecuteReader atau BeginExecuteReader untuk mengakses data XML, SQL Server akan mengembalikan hasil XML apa pun yang lebih besar dari 2.033 karakter dalam beberapa baris masing-masing 2.033 karakter. Untuk menghindari perilaku ini, gunakan ExecuteXmlReader atau BeginExecuteXmlReader untuk membaca kueri XML.