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
Erstellen Sie die gespeicherte Prozedur.
Speichern Sie den in diesem Beispiel bereitgestellten C#-Code (DocSample.cs) in einem Ordner. Bearbeiten Sie den Code, um entsprechende Anmelde- und Kennwortinformationen anzugeben.
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.
Führen Sie DocSample.exe an der Eingabeaufforderung aus.