#608 - Utilizzare SQLXML per creare documenti XML con ASP.NET

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.

Per approfondimenti si veda:

Query XML con T-SQL e SQL Server 2000
http://www.aspitalia.com/articoli/db/xmlt-sql.aspx


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC