SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader SqlCommand.ExecuteXmlReader Method

정의

CommandTextConnection에 보내고, XmlReader 개체를 빌드합니다.Sends the CommandText to the Connection and builds an XmlReader object.

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

반환

예외

ValueStream으로 설정되면 Binary 또는 VarBinary가 아닌 SqlDbType이 사용되었습니다.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.For more information about streaming, see SqlClient Streaming Support.

또는-or-

ValueTextReader로 설정되면 Char, NChar, NVarChar, VarChar 또는 Xml이 아닌 SqlDbType이 사용되었습니다.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

또는-or-

ValueXmlReader로 설정된 경우 Xml이 아닌 SqlDbType이 사용되었습니다.A SqlDbType other than Xml was used when Value was set to XmlReader.

잠긴 행에 대해 명령을 실행하는 동안 예외가 발생했습니다.An exception occurred while executing the command against a locked row. Microsoft .NET Framework 버전 1.0을 사용하는 경우에는 이 예외가 생성되지 않습니다.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

또는-or-

스트리밍 작업 동안 시간이 초과되었습니다.A timeout occurred during a streaming operation. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.For more information about streaming, see SqlClient Streaming Support.

스트리밍 작업 동안 SqlConnection이 닫히거나 삭제되었습니다.The SqlConnection closed or dropped during a streaming operation. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.For more information about streaming, see SqlClient Streaming Support.

스트리밍 작업 동안 Stream, XmlReader 또는 TextReader 개체에서 오류가 발생했습니다.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.For more information about streaming, see SqlClient Streaming Support.

스트리밍 작업 동안 Stream, XmlReader 또는 TextReader 개체가 닫혔습니다.The Stream, XmlReader or TextReader object was closed during a streaming operation. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.For more information about streaming, see SqlClient Streaming Support.

예제

다음 예에서는 SqlCommand 를 사용 하 여 다음 실행 ExecuteXmlReader합니다.The following example creates a SqlCommand and then executes it using ExecuteXmlReader. 이 예제에서는 XML 선택 Transact SQL 문 문자열과 데이터 원본에 연결 하는 데 문자열로 전달 됩니다.The example is passed a string that is a Transact-SQL FOR XML SELECT statement, and a string to use to connect to the data source.

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 이 반환한 메서드는 비동기 작업을 지원 하지 않습니다.The XmlReader returned by this method does not support asynchronous operations.

합니다 CommandText 속성은 일반적으로 지정을 Transact-SQLTransact-SQL 유효한 FOR XML 절을 사용 하 여 문을 합니다.The CommandText property ordinarily specifies a Transact-SQLTransact-SQL statement with a valid FOR XML clause. 그러나 CommandText 반환 하는 문을 지정할 수도 있습니다 ntext 또는 nvarchar 유효한 XML 또는 정의 된 열의 내용을 포함 하는 데이터는 xml 데이터 형식입니다.However, CommandText can also specify a statement that returns ntext or nvarchar data that contains valid XML, or the contents of a column defined with the xml data type.

일반적인 ExecuteXmlReader 쿼리는 다음 Microsoft Visual C# 예제와 같이 형식을 지정할 수 있습니다.A typical ExecuteXmlReader query can be formatted as in the following Microsoft Visual C# example:

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

이 메서드는 XML 데이터가 포함 된 단일 열 단일 행 결과 집합을 검색 하려면 데도 사용할 수 있습니다.This method can also be used to retrieve a single-row, single-column result set that contains XML data. 이 예제의 경우 둘 이상의 하나의 행이 반환 된 ExecuteXmlReader 메서드 연결은 XmlReader 결과의 나머지 부분에서 첫 번째 행 및 삭제를 값으로 설정 합니다.In this case, if more than one row is returned, the ExecuteXmlReader method attaches the XmlReader to the value on the first row, and discards the rest of the result set.

다중 활성 결과 집합 (MARS) 기능은 동일한 연결을 사용 하 여 여러 동작을 허용 합니다.The multiple active result set (MARS) feature allows for multiple actions using the same connection.

사용 하는 경우 ExecuteReader 또는 BeginExecuteReader XML 데이터에 액세스 하려면 SQL Server는 XML 결과가 반환 코드 보다 큰 2, 033 문자 여러 행의 길이입니다.If you use ExecuteReader or BeginExecuteReader to access XML data, SQL Server will return any XML results greater than 2,033 characters in length in multiple rows of 2,033 characters each. 이 동작을 방지 하려면 사용 하 여 ExecuteXmlReader 또는 BeginExecuteXmlReader FOR XML 쿼리를 읽을 수 있습니다.To avoid this behavior, use ExecuteXmlReader or BeginExecuteXmlReader to read FOR XML queries.

적용 대상

추가 정보