Continuiamo la trattazione di SQLXML con la creazione di uno script ASP.NET in grado di visualizzare a video il risultato di una query XML restituita da SQL Server.
Pur potendo sfruttare le classi managed, è preferibile utilizzare semplicemente la classe SqlCommand per l'estrazione dei dati, se il nostro interesse è semplicemente rivolto alla visualizzazione dei dati.
<%@ Import namespace="System.Data"%> <%@ Import namespace="System.Data.SqlClient"%> <SCRIPT RUNAT="SERVER" Language="C#"> void Page_Load() { // root XML dei dati string root = "dati"; // imposto il ContenType e scrivo la root Response.ContentType = "text/xml"; Response.Write("<" + root + ">"); // definisco la query SQL string sql = "SELECT * FROM titles FOR XML AUTO, ELEMENTS"; // effettuo la connessione SqlConnection conn = new SqlConnection("Data Source=(local); Initial Catalog=pubs; Integrated Security=SSPI;"); conn.Open(); // recupero i dati un po' alla volta con la classe SqlCommand SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Response.Write(dr[0].ToString()); } conn.Close(); // chiudo la root XML Response.Write("</" + root + ">"); } </SCRIPT>
In alternativa sarebbe possibile utilizzare il metodo ExecuteXmlReader() della classe SqlCommand.
Con una rapida occhiata tramite Reflector si può notare, però, che, proprio per la sua predisposizione verso XML, questo metodo sarebbe meno performante per la scrittura diretta a video dell'output.
Approfondimenti
Query XML con T-SQL e SQL Server 2000
https://www.aspitalia.com/articoli/db/xmlt-sql.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Definire le impostazioni di cache a livello di controller in ASP.NET Core 7
Utilizzare parametri a livello di controller nel routing di ASP.NET Core
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Definire la durata dell'output cache in ASP.NET Core 7
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Cache policy su route groups di Minimal API in ASP.NET Core 7
Gestire la query string nell'output cache di ASP.NET Core
Leggere i dati di configurazione di ASP.NET Core da Azure Key Vault
Gestire dati sensibili nella configurazione in ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core