traitement du XML côté client (classes managées SQLXML)
L'exemple suivant illustre l'utilisation de la propriété ClientSideXml. L'application exécute une procédure stockée sur le serveur. Le résultat de la procédure stockée (un ensemble de lignes à deux colonnes) est traité sur le côté client pour produire un document XML.
La procédure stockée GetContacts suivante retourne le FirstName et le LastName des employés de la table Person.Person de la base de données AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM Person.Person
WHERE LastName = @LastName;
Go
Cette application C# exécute la procédure stockée et spécifie l'option FOR XML AUTO en définissant la valeur CommandText. Dans l'application, la propriété ClientSideXml de l'objet SqlXmlCommand est définie avec la valeur true. Cela vous permet d'exécuter les procédures stockées préexistantes qui retournent un ensemble de lignes et lui appliquent une transformation XML.
Notes
Dans le code, vous devez fournir le nom de l'instance de Microsoft SQL Server dans la chaîne de connexion.
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks2008R2;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;
}
}
Pour tester l'application
Créez la procédure stockée.
Enregistrez le code C# (DocSample.cs) fourni dans cet exemple dans un dossier. Modifiez le code pour spécifier les informations de connexion et de mot de passe appropriées.
Compilez le code. Pour compiler le code à l'invite de commandes, utilisez :
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csUn fichier exécutable (DocSample.exe) est alors créé.
À l'invite de commandes, exécutez DocSample.exe. Pour tester cet exemple, Microsoft .NET Framework doit être installé sur votre ordinateur.