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.
Hinweis |
---|
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
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.