Freigeben über


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 gespeicherte GetContacts-Prozedur gibt die Informationen FirstName und LastName von Mitarbeitern in der Person.Person-Tabelle der AdventureWorks2008R2-Datenbank zurück.

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

Diese C#-Anwendung führt die gespeicherte Prozedur aus und gibt bei Angabe des CommandText-Werts die FOR XML AUTO-Option 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=AdventureWorks2008R2;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;
}
}

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. Um das Beispiel zu testen, muss auf Ihrem Computer Microsoft .NET Framework installiert sein.