Clientseitige Verarbeitung von XML (Verwaltete Klassen in SQLXML)

Dieses Beispiel veranschaulicht die Verwendung der ClientSideXml-Eigenschaft. 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 GetContacts gespeicherte Prozedur gibt die Informationen FirstName und LastName von Mitarbeitern in der Person.Contact-Tabelle der AdventureWorks-Datenbank zurück.

USE AdventureWorks
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 als Wert für CommandText an. In der Anwendung wird für die ClientSideXml-Eigenschaft des SqlXmlCommand-Objekts 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.

HinweisHinweis

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

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

Um das Beispiel zu testen, muss Microsoft .NET Framework auf Ihrem Computer installiert sein.

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.