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.