Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Dit voorbeeld illustreert het gebruik van de ClientSideXml-eigenschap. De applicatie voert een opgeslagen procedure uit op de server. Het resultaat van de opgeslagen procedure (een rijset met twee kolommen) wordt aan de clientzijde verwerkt om een XML-document te produceren.
De volgende GetContacts-opgeslagen procedure geeft Voornaam en Achternaam van medewerkers terug in de Person.Contact-tabel in de AdventureWorks-database.
Opmerking
In Azure SQL Database en SQL Database in Microsoft Fabric is de USE instructie niet beschikbaar. Maak in plaats daarvan direct verbinding met de beoogde database en voer de rest van het codevoorbeeld uit.
USE AdventureWorks2022;
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM Person.Contact
WHERE LastName = @LastName
Go
Deze C#-applicatie voert de opgeslagen procedure uit en specificeert de optie FOR XML AUTO bij het specificeren van de CommandText-waarde. In de applicatie is de ClientSideXml-eigenschap van het SqlXmlCommand-object op true gezet. Dit stelt je in staat om bestaande opgeslagen procedures uit te voeren die een rowset teruggeven en een XML-transformatie daarop toe te passen op de client.
Opmerking
In de code moet je de naam van de instantie van Microsoft SQL Server in de verbindingsstring opgeven.
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;
}
}
Om dit voorbeeld te testen, moet je het Microsoft .NET Framework op je computer hebben geïnstalleerd.
De toepassing testen
Maak de opgeslagen procedure.
Sla de C#-code (DocSample.cs) die in dit voorbeeld wordt gegeven op in een map. Bewerk de code om de juiste inlog- en wachtwoordinformatie te specificeren.
Compileer de code. Om de code in de opdrachtprompt te compileren, gebruik u:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csDit creëert een uitvoerbaar bestand (DocSample.exe).
Voer bij de opdrachtprompt DocSample.exeuit.