Partilhar via


Processando XML no lado do cliente (classes gerenciadas SQLXML)

Aplica-se a:SQL ServerBanco de Dados SQL do Azure

Este exemplo ilustra a utilização da propriedade ClientSideXml. A aplicação executa um procedimento armazenado no servidor. O resultado do procedimento armazenado (um conjunto de linhas de duas colunas) é processado do lado do cliente para produzir um documento XML.

O procedimento armazenado GetContacts a seguir devolve Primeiro Nome e Apelido dos colaboradores na tabela Person.Contact na base de dados AdventureWorks.

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

Esta aplicação C# executa o procedimento armazenado e especifica a opção FOR XML AUTO ao especificar o valor CommandText. Na aplicação, a propriedade ClientSideXml do objeto SqlXmlCommand é definida como verdadeira. Isto permite-lhe 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, deve fornecer o nome da instância do Microsoft SQL Server na cadeia de ligaçã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, deve ter o Microsoft .NET Framework instalado no seu computador.

Para testar a aplicação

  1. Crie o procedimento armazenado.

  2. Guarde o código C# (DocSample.cs) fornecido neste exemplo numa pasta. Edite o código para especificar a informação adequada de login e palavra-passe.

  3. Compila o código. Para compilar o código no prompt de comandos, use:

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

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

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