XML aan de clientzijde verwerken (beheerde SQLXML-klassen)

Van toepassing op:SQL ServerAzure SQL Database

Dit voorbeeld illustreert het gebruik van de ClientSideXml-eigenschap. De applicatie voert een opgeslagen procedure uit op de server. Het resultaat van de opgeslagen procedure (een rijset met twee kolommen) wordt aan de clientzijde verwerkt om een XML-document te produceren.

De volgende GetContacts-opgeslagen procedure geeft Voornaam en Achternaam van medewerkers terug in de Person.Contact-tabel in de AdventureWorks-database.

Opmerking

In Azure SQL Database en SQL Database in Microsoft Fabric is de USE instructie niet beschikbaar. Maak in plaats daarvan direct verbinding met de beoogde database en voer de rest van het codevoorbeeld uit.

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

Deze C#-applicatie voert de opgeslagen procedure uit en specificeert de optie FOR XML AUTO bij het specificeren van de CommandText-waarde. In de applicatie is de ClientSideXml-eigenschap van het SqlXmlCommand-object op true gezet. Dit stelt je in staat om bestaande opgeslagen procedures uit te voeren die een rowset teruggeven en een XML-transformatie daarop toe te passen op de client.

Opmerking

In de code moet je de naam van de instantie van Microsoft SQL Server in de verbindingsstring opgeven.

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;  
}  
}  

Om dit voorbeeld te testen, moet je het Microsoft .NET Framework op je computer hebben geïnstalleerd.

De toepassing testen

  1. Maak de opgeslagen procedure.

  2. Sla de C#-code (DocSample.cs) die in dit voorbeeld wordt gegeven op in een map. Bewerk de code om de juiste inlog- en wachtwoordinformatie te specificeren.

  3. Compileer de code. Om de code in de opdrachtprompt te compileren, gebruik u:

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

    Dit creëert een uitvoerbaar bestand (DocSample.exe).

  4. Voer bij de opdrachtprompt DocSample.exeuit.