SqlCommand.ExecuteXmlReader Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Envia o CommandText para e Connection constrói um XmlReader objeto.
public:
System::Xml::XmlReader ^ ExecuteXmlReader();
public System.Xml.XmlReader ExecuteXmlReader();
member this.ExecuteXmlReader : unit -> System.Xml.XmlReader
Public Function ExecuteXmlReader () As XmlReader
Devoluções
Um XmlReader objeto.
Exceções
Um SqlDbType diferente de Binary ou VarBinary era usado quando Value estava definido para Stream. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
-ou-
Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou XML era usado quando Value estava definido para TextReader.
-ou-
Um SqlDbType outro que não XML era usado quando Value estava definido para XmlReader.
Ocorreu uma exceção ao executar o comando contra uma linha bloqueada. Esta exceção não é gerada quando está a usar Microsoft .NET Framework versão 1.0.
-ou-
Ocorreu um tempo durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Fecharam SqlConnection ou caíram durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Ocorreu um erro num Stream, XmlReader ou TextReader objeto durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
O Stream, XmlReader ou TextReader objeto era fechado durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Exemplos
O exemplo seguinte cria um SqlCommand e depois executa-o usando ExecuteXmlReader. O exemplo recebe uma string que é uma instrução Transact-SQL FOR XML SELECT e uma string para usar para se ligar à fonte de dados.
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
Observações
O XmlReader devolvido por este método não suporta operações assíncronas.
A propriedade CommandText especifica normalmente uma instrução Transact-SQL com uma cláusula FOR XML válida. No entanto, CommandText pode também especificar uma instrução que devolve ntext dados nvarchar que contenham XML válido, ou o conteúdo de uma coluna definida com o xml tipo de dado.
Uma consulta típica ExecuteXmlReader pode ser formatada como no seguinte exemplo Microsoft Visual C#:
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers FOR XML AUTO, XMLDATA", SqlConn);
Este método também pode ser usado para recuperar um conjunto de resultados de uma linha e coluna única que contenha dados XML. Neste caso, se mais do que uma linha for devolvida, o ExecuteXmlReader método associa o XmlReader ao valor da primeira linha e descarta o resto do conjunto de resultados.
A funcionalidade de múltiplos conjuntos de resultados ativos (MARS) permite múltiplas ações usando a mesma ligação.
Se usar ExecuteReader ou BeginExecuteReader para aceder a dados XML, SQL Server devolverá quaisquer resultados XML com mais de 2.033 caracteres em várias linhas de 2.033 caracteres cada. Para evitar este comportamento, use ExecuteXmlReader ou BeginExecuteXmlReader leia consultas XML FOR.