traitement du XML côté client (classes managées SQLXML)

S’applique à :SQL ServerAzure SQL Database

Cet exemple 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 renvoie FirstName et LastName des employés dans la table Person.Contact de la base de données AdventureWorks.

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

Cette application C# exécute la procédure stockée et spécifie l’option FOR XML AUTO en spécifiant la valeur CommandText. Dans l’application, la propriété ClientSideXml de l’objet SqlXmlCommand a 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 du 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=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;  
}  
}  

Pour tester cet exemple, microsoft .NET Framework doit être installé sur votre ordinateur.

Pour tester l'application

  1. Créez la procédure stockée.

  2. 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.

  3. Compilez le code. Pour compiler le code à l'invite de commandes, utilisez :

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

    Un fichier exécutable (DocSample.exe) est alors créé.

  4. À l'invite de commandes, exécutez DocSample.exe.