SqlCommand.ExecuteXmlReader メソッド

定義

CommandTextConnection に送信し、XmlReader オブジェクトを構築します。

public:
 System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader ();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader

戻り値

XmlReader オブジェクト。

例外

ValueStream に設定されたときに、Binary でも VarBinary でもない SqlDbType が使用されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

- または -

SqlDbTypeが にTextReader設定されている場合ValueCharNCharNVarCharVarCharまたは Xml 以外の が使用されました。

- または -

ValueXmlReader に設定されたときに、Xml 以外の SqlDbType が使用されました。

ロックされた行に対するコマンドの実行中に、例外が発生しました。 Microsoft .NET Framework バージョン 1.0 を使用している場合は、この例外は生成されません。

- または -

ストリーミング操作中にタイムアウトが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

ストリーミング操作中に、SqlConnection が閉じられたか切断されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトでエラーが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

ストリーミング操作中に、StreamXmlReader、または TextReader オブジェクトが閉じられました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

次の例では、 を SqlCommand 作成し、 を使用して ExecuteXmlReader実行します。 この例では、Transact-SQL FOR XML SELECT ステートメントである文字列と、データ ソースへの接続に使用する文字列が渡されます。

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

注釈

このメソッドによって返される XmlReader は、非同期操作をサポートしていません。

プロパティは CommandText 通常、有効な FOR XML 句を含む Transact-SQL ステートメントを指定します。 ただし、CommandText有効な XML を含む または nvarchar データを返ntextす ステートメント、またはデータ型で定義された列の内容をxml指定することもできます。

一般的なExecuteXmlReaderクエリは、Microsoft Visual C# の例を次のように書式設定できます。

SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);

このメソッドを使用して、XML データを含む単一行の単一列の結果セットを取得することもできます。 この場合、複数の行が返された場合、 ExecuteXmlReader メソッドは 最初の行の値に をアタッチ XmlReader し、結果セットの残りの部分を破棄します。

複数のアクティブな結果セット (MARS) 機能を使用すると、同じ接続を使用して複数のアクションを実行できます。

または BeginExecuteReader を使用ExecuteReaderして XML データにアクセスする場合、SQL Serverは、それぞれ 2,033 文字の複数行で 2,033 文字を超える XML 結果を返します。 この動作を回避するには、 または BeginExecuteXmlReader を使用ExecuteXmlReaderして FOR XML クエリを読み取ります。

適用対象

こちらもご覧ください