Compartilhar via


Processando XML no cliente (classes gerenciadas SQLXML)

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 AdventureWorks
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM   Person.Contact
WHERE LastName = @LastName
Go

Este 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çãoObservação

No código, é necessário 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, é necessário ter o Microsoft .NET Framework instalado no 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.