SqlCommand.ExecuteXmlReader Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
CommandText öğesine Connection gönderir ve bir XmlReader nesnesi oluşturur.
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Döndürülenler
Bir XmlReader nesnesi.
Özel durumlar
SqlDbType olarak ayarlandığında Streamİkili veya VarBinary dışında bir değer kullanılmıştırValue. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.
-veya-
SqlDbType olarak ayarlandığında TextReaderChar, NChar, NVarChar, VarChar veya Xml dışında bir değer kullanılmıştırValue.
-veya-
olarak ayarlandığında XmlReaderXml dışında bir SqlDbType değer kullanılmıştırValue.
Kilitli bir satırda komut yürütülürken bir özel durum oluştu. Bu özel durum, Microsoft .NET Framework sürüm 1.0 kullanırken oluşturulmaz.
-veya-
Akış işlemi sırasında zaman aşımı oluştu. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.
Akış SqlConnection işlemi sırasında kapatılan veya bırakılan. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.
Akış işlemi sırasında bir Streamveya XmlReaderTextReader nesnesinde hata oluştu. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.
bir Streamakış işlemi sırasında veya XmlReaderTextReader nesnesi kapatıldı. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.
Örnekler
Aşağıdaki örnek bir SqlCommand oluşturur ve kullanarak ExecuteXmlReaderyürütür. Örnekte Transact-SQL FOR XML SELECT deyimi olan bir dize ve veri kaynağına bağlanmak için kullanılacak bir dize geçirilir.
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
Açıklamalar
Bu yöntem tarafından döndürülen XmlReader zaman uyumsuz işlemleri desteklemez.
CommandText özelliği normalde geçerli bir FOR XML yan tümcesine sahip bir Transact-SQL deyimi belirtir. Ancak, CommandText geçerli XML içeren verileri veya nvarchar
veri türüyle xml
tanımlanan bir sütunun içeriğini döndüren ntext
bir deyim de belirtebilir.
Tipik ExecuteXmlReader bir sorgu aşağıdaki Microsoft Visual C# örneğinde olduğu gibi biçimlendirilebilir:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Bu yöntem, XML verilerini içeren tek satırlı, tek sütunlu bir sonuç kümesini almak için de kullanılabilir. Bu durumda, birden fazla satır döndürülürse, ExecuteXmlReader yöntemi ilk satırdaki değere ekler XmlReader ve sonuç kümesinin geri kalanını atar.
Birden çok etkin sonuç kümesi (MARS) özelliği, aynı bağlantıyı kullanan birden çok eyleme olanak tanır.
XML verilerine erişmek için veya BeginExecuteReader kullanırsanızExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun xml sonuçları döndürür. Bu davranışı önlemek için veya BeginExecuteXmlReader kullanarak ExecuteXmlReader FOR XML sorgularını okuyun.