Aracılığıyla paylaş


SqlCommand.ExecuteXmlReader Yöntem

Tanım

öğesine CommandTextConnection 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ıldıValue. 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ıldıValue.

-veya-

olarak ayarlandığında XmlReader Xml dışında bir SqlDbType değer kullanıldıValue.

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 Stream veya XmlReaderTextReader nesnesinde hata oluştu. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

, StreamXmlReader veya TextReader nesnesi bir akış işlemi sırasında 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.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

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();
    }
}

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 deyimi 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 öğesini 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 izin verir.

XML verilerine erişmek için veya BeginExecuteReader kullanırsanızExecuteReader, SQL Server her biri 2.033 karakterlik birden çok satırda 2.033 karakterden uzun xml sonuçları döndürür. Bu davranışı önlemek için, FOR XML sorgularını okumak için veya BeginExecuteXmlReader kullanınExecuteXmlReader.

Şunlara uygulanır