Freigeben über


Clientseitige Verarbeitung von XML (Verwaltete Klassen in SQLXML)

Gilt für: SQL Server Azure SQL-Datenbank

In diesem Beispiel wird die Verwendung der ClientSideXml-Eigenschaft veranschaulicht. Die Anwendung führt eine gespeicherte Prozedur auf dem Server aus. Das Ergebnis der gespeicherten Prozedur (ein Rowset mit zwei Spalten) wird auf der Clientseite verarbeitet und ein XML-Dokument produziert.

Die folgende gespeicherte GetContacts-Prozedur gibt "FirstName" und "LastName" von Mitarbeitern in der Tabelle "Person.Contact" in der AdventureWorks-Datenbank zurück.

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

Diese C#-Anwendung führt die gespeicherte Prozedur aus und gibt die FOR XML AUTO-Option zum Angeben des CommandText-Werts an. In der Anwendung wird die ClientSideXml-Eigenschaft des SqlXmlCommand-Objekts auf "true" festgelegt. Auf diese Weise können Sie bereits bestehende gespeicherte Prozeduren ausführen, die ein Rowset zurückgeben und auf dem Client eine XML-Transformation auf das Rowset anwenden.

Hinweis

Im Code müssen Sie den Namen der Instanz von Microsoft SQL Server im Verbindungszeichenfolge angeben.

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

Zum Testen dieses Beispiels müssen Sie microsoft .NET Framework auf Ihrem Computer installiert haben.

So testen Sie die Anwendung

  1. Erstellen Sie die gespeicherte Prozedur.

  2. Speichern Sie den in diesem Beispiel bereitgestellten C#-Code (DocSample.cs) in einem Ordner. Bearbeiten Sie den Code, um entsprechende Anmelde- und Kennwortinformationen anzugeben.

  3. Kompilieren Sie den Code. Verwenden Sie zur Kompilierung des Codes an der Eingabeaufforderung die folgende Zeichenfolge:

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

    Dadurch wird eine ausführbare Datei (DocSample.exe) erstellt.

  4. Führen Sie DocSample.exe an der Eingabeaufforderung aus.