Compartilhar via


Processando XML no cliente (classes gerenciadas SQLXML)

Aplica-se a: SQL Server Banco de Dados SQL do Azure

Este exemplo ilustra o uso da propriedade ClientSideXml. O aplicativo executa um procedimento armazenado no servidor. O resultado do procedimento armazenado (um conjunto de linhas de duas colunas) é processado no cliente para gerar um documento XML.

O procedimento armazenado GetContacts a seguir retorna FirstName e LastName dos funcionários na tabela Person.Contact no banco de dados AdventureWorks.

USE AdventureWorks2022;
CREATE PROCEDURE GetContacts @LastName varchar(20)  
AS  
SELECT FirstName, LastName  
FROM   Person.Contact  
WHERE LastName = @LastName  
Go  

Esse aplicativo C# executa o procedimento armazenado e especifica a opção FOR XML AUTO ao especificar o valor CommandText. No aplicativo, a propriedade ClientSideXml do objeto SqlXmlCommand é definida como true. Isto permite executar procedimentos armazenados pré-existentes que retornam um conjunto de linhas e aplicam uma transformação XML a ele no cliente.

Observação

No código, você deve fornecer o nome da instância do Microsoft SQL Server na cadeia de conexão.

using System;  
using Microsoft.Data.SqlXml;  
using System.IO;  
class Test  
{  
    static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";  
      public static int testParams()  
      {  
         //Stream strm;  
         SqlXmlParameter p;  
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
         cmd.ClientSideXml = true;  
         cmd.CommandText = "EXEC GetContacts ? FOR XML NESTED";  
         p = cmd.CreateParameter();  
         p.Value = "Achong";  
         using (Stream strm = cmd.ExecuteStream())   
         {  
            using (StreamReader sr = new StreamReader(strm))  
                  {  
               Console.WriteLine(sr.ReadToEnd());  
            }  
         }  
         return 0;  
      }  
  
public static int Main(String[] args)  
{  
    testParams();  
    return 0;  
}  
}  

Para testar este exemplo, você deve ter o Microsoft .NET Framework instalado em seu computador.

Para testar o aplicativo

  1. Crie o procedimento armazenado.

  2. Salve o código C# (DocSample.cs) fornecido neste exemplo em uma pasta. Edite o código para especificar as informações de logon e senha apropriadas.

  3. Compile o código. Para compilar o código no prompt de comando, use:

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs  
    

    Isso cria um executável (DocSample.exe).

  4. No prompt de comando, execute DocSample.exe.