Condividi tramite


Elaborazione di XML sul lato client (classi gestite SQLXML)

Si applica a: SQL Server Database SQL di Azure

In questo esempio viene illustrato l'utilizzo della proprietà ClientSideXml. L'applicazione esegue una stored procedure nel server. Il risultato della stored procedure, ovvero un set di righe a due colonne, viene elaborato sul lato client per produrre un documento XML.

La stored procedure GetContacts seguente restituisce FirstName e LastName dei dipendenti nella tabella Person.Contact del database AdventureWorks.

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

Questa applicazione C# esegue la stored procedure e specifica l'opzione FOR XML AUTO specificando il valore CommandText. Nell'applicazione la proprietà ClientSideXml dell'oggetto SqlXmlCommand è impostata su true. In questo modo è possibile eseguire stored procedure preesistenti che restituiscono un set di righe e applicano a questo una trasformazione XML sul client.

Nota

Nel codice è necessario specificare il nome dell'istanza di Microsoft SQL Server nel stringa di connessione.

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

Per testare questo esempio, è necessario che Microsoft .NET Framework sia installato nel computer.

Per testare l'applicazione

  1. Creare la stored procedure.

  2. Salvare in una cartella il codice C# (DocSample.cs) fornito in questo esempio. Modificare il codice per specificare informazioni di accesso e sulla password appropriate.

  3. Compilare il codice. Per compilare il codice al prompt dei comandi, utilizzare:

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs  
    

    Viene creato un file eseguibile (DocSample.exe).

  4. Al prompt dei comandi eseguire DocSample.exe.