Procesar XML en el cliente (clases administradas de SQLXML)
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 procedimiento almacenado GetContacts siguiente devuelve el nombre (FirstName) y los apellidos (LastName) de los empleados de la tabla Person.Contact de la base de datos AdventureWorks.
USE AdventureWorks
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 para 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 suministrar el nombre de la instancia de Microsoft SQL Server en la 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 instalado Microsoft .NET Framework en el equipo.
Para probar la aplicación
Cree el procedimiento almacenado.
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.
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).
En el símbolo del sistema, ejecute DocSample.exe.