Compartir a través de


Procesar XML en el cliente (clases administradas de SQLXML)

Se aplica a: SQL ServerAzure SQL Database

En este ejemplo se muestra el uso de la propiedad ClientSideXml. La aplicación ejecuta un procedimiento almacenado en el servidor. El resultado del procedimiento almacenado (un conjunto de filas de dos columnas) se procesa en el cliente para generar un documento XML.

El siguiente procedimiento almacenado GetContacts devuelve FirstName y LastName de los empleados de la tabla Person.Contact de la base de datos AdventureWorks.

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

Esta aplicación de C# ejecuta el procedimiento almacenado y especifica la opción FOR XML AUTO al especificar el valor CommandText. En la aplicación, la propiedad ClientSideXml del objeto SqlXmlCommand se establece en true. Esto le permite ejecutar procedimientos almacenados preexistentes que devuelven un conjunto de filas y aplican a este último una transformación XML en el cliente.

Nota:

En el código, debe proporcionar el nombre de la instancia de Microsoft SQL Server en el cadena de conexión.

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 probar este ejemplo, debe tener microsoft .NET Framework instalado en el equipo.

Para probar la aplicación

  1. Cree el procedimiento almacenado.

  2. Guarde el código (DocSample.cs) de C# que se proporciona en este ejemplo en una carpeta. Modifique el código para especificar la información adecuada de inicio de sesión y contraseña.

  3. Compile el código. Para compilar el código en el símbolo del sistema, use:

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

    Esto crea una aplicación ejecutable (DocSample.exe).

  4. En el símbolo del sistema, ejecute DocSample.exe.