106 messaggi dal 16 ottobre 2001
Ciao a tutti.
Mi occorre salvare il risultato di una query su un file excel.Questo file deve essere salvato sul server e anche in locale dall'utente.
Se la creazione del file va bene effettuo un update sul db.

Come posso fare?
Per la creazione del file ho scritto:

Dim F As System.Data.DataRow
Dim csv As String = ""
Dim buffer As String = ""
Dim C As Object

'intestazioni
csv = "campo1;campo2;..."
For Each F In dt.Rows
buffer = ""
For Each C In F.ItemArray
If C.ToString().IndexOf(";") > -1 Then
buffer &= ";" & C.ToString().Replace(",", """,""")
Else
buffer &= ";" & C.ToString()
End If
Next
If buffer.Length > 0 Then buffer = buffer.Substring(1)
csv &= vbCrLf & buffer
buffer = ""
Next

Response.Clear()

Response.AppendHeader("Content-type", "application/octet-stream")
Response.AppendHeader("Content-length", csv.Length)

Dim filename As String = "Estrazione" & Year(Now) & Month(Now) & Day(Now()) & Hour(Now()) & Minute(Now) & Second(Now) & ".csv"
Response.AppendHeader("content-disposition", "attachment; filename=" + filename)

Response.Write(csv)
Response.End()

In questo modo però ho più problemi.Come faccio a salvare i file sul server?Se provo a fare qualche altra operazione in coda al codice che ho riportato ho il seguente errore:
"Thread was being aborted."Come mai?

Grazie!
Perché fai Response.End e questo metodo termina il thread. Perché mentre scrivi il csv non lo scrivi direttamente in output e anche su uno stream su file del server?
In pratica invece di concatenare le stringhe, usa Response.Write che non fa altro che "accodare" la risposta.
Inoltre crea uno StreamWriter sul file fisico che vuoi salvare e anche lì chiama il metodo Write dello stream per scrivere su disco

Ciao

Il mio blog
Homepage
70 messaggi dal 02 settembre 2003
Io ho invece un altro problema....in coda al file csv c'è l'header che io non vorrei. come posso ovviare ? thanks

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.