ti consiglio di leggere un po di documentazione su StringBuilder e StringWriter
Quello che dovresti fare è una funzione che ti restituisce tutta la stringa di output (quindi XML) generata leggendo dal database.
Nella pagina devi aggiungere una label (piuttosto che un textarea) ed un bottone.
Al load della pagina richiami la funzione che ti restituisce il dato e la metti nella label.
Al Click sul pulsante invecie scrivi su un file di testo
codice:
//load della pagina
if (!Page.IsPostBack)
lblContenitore.Text = Server.HtmlEncode(metodoCostruttoreRisultato());
//click del pulsante
if (!string.IsNullOrEmpty(lblContenitore.Text))
//qui il codice per prendere tutto il testo e scriverlo su un file o sulla response