SqlCommand.ExecuteXmlReader Yöntem

Tanım

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 İkili veya Value dışında bir değer kullanıldıStream. Akış hakkında daha fazla bilgi için bkz. SqlClient Akış Desteği.

-veya-

SqlDbType Olarak ayarlandığında Char, NChar, NVarChar, VarChar veya Value dışında bir değer kullanıldıTextReader.

-veya-

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

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 , XmlReader veya TextReader 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. Örnek, 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 ntext veri türüyle nvarchar tanımlanan bir sütunun içeriğini döndüren xml 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 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 olanak tanır.

XML verilerine erişmek için veya ExecuteReader kullanırsanızBeginExecuteReader, SQL Server her biri 2.033 karakterden oluşan birden çok satırda 2.033 karakterden uzun tüm XML sonuçlarını döndürür. Bu davranışı önlemek için veya ExecuteXmlReader komutunu kullanarak BeginExecuteXmlReader FOR XML sorgularını okuyun.

Şunlara uygulanır

Ayrıca bkz.