Delen via


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.

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.