Foros del Web » Programación para mayores de 30 ;) » .NET »

crear un archivo de text, con los datos contenidos en un dataset

Estas en el tema de crear un archivo de text, con los datos contenidos en un dataset en el foro de .NET en Foros del Web. Lo que necesito es crear un archivo de texto, en la pc del visitante, con los datos contenidos en un dataset con Vbasic.net para una ...
  #1 (permalink)  
Antiguo 15/07/2005, 08:20
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta crear un archivo de text, con los datos contenidos en un dataset

Lo que necesito es crear un archivo de texto, en la pc del visitante, con los datos contenidos en un dataset con Vbasic.net para una web aplication.

Esto es:
Traigo los datos desde una bd Acces con oledb conection, y lo meto en un dataset (podria ser un datareader), y quiero explorar las rows del dataset y meter cada row en un archivo de texto que se pueda "bajar " a la pc del visitante.

Crear XML es facilisimo, pero no es lo que requiero, por que a ese archivo de texto lo consume una aplicacion FOX, (viejita, no entiende xml...) y arma unas cosas con esos datos...

ok Espero alguna respuesta POR FAVOR !!!
  #2 (permalink)  
Antiguo 15/07/2005, 08:59
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola y bienvenido..

Si ya tienes tu dataset con la información, sollo basta con recorrerlo con las columnas que necesitas, guardando la información en un Stringbuilder para concatenar (mayor performance y velocidad) y luego hacer un response para que el usuario pueda decargarlo.

Tu code podría quedar mas o menos así:

Cita:
...
'lleno mi dataset (ds)

'declaro mi stringbuilder
System.Text.StringBuilder sb = new System.Text.StringBuilder();
For each (dr as DataRow in ds.Tables(0).Rows)
sb.Append("Columna 1" + dr[0].ToString() + Chr(13) )
sb.Append("Columna 2" + dr[2].ToString() + Chr(13) )
sb.Append("Columna 3" + dr[3].ToString() + Chr(13) )
....
....
sb.Append("Columna X" + dr[x].ToString() + Chr(13) )
End

Response.Clear();
'tipo de content y nombre de mi archivo que será exportado
Response.AddHeader("content-disposition", "attachment;filename=resultado.txt");
Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.No Cache);
Response.ContentType = "application/vnd.text";
Response.Write(sb.ToString());
Response.End();
Y listo... ya tendrás en un txt la informacion de tu dataset...

P.D. El chr(13) es un salto de linea con retorno de carro para que en el archivo de texto no lo veas todo en una sola línea

Espero que te sirva.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 15/07/2005, 09:42
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
Ei, verdaderamente no hay secretos para vos eee?
GRACIAS !!
  #4 (permalink)  
Antiguo 15/07/2005, 09:54
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
Tengo un problema...
En el Codigo, donde armas el for para recorrer y almacenar los datos, no sabe que es "dr"
me lo subraya
?
dr as datarow in mydataset bla bla
  #5 (permalink)  
Antiguo 15/07/2005, 10:16
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
En el Codigo, donde armas el for para recorrer y almacenar los datos, no sabe que es "dr"
jeje.. es que maneje en mi sintaxisi una combinacion medio extraña de vb.net con c# (es que a veces uso c# o otras vb.net, parece que quise hacer mi propio lenguaje framework... jaja)

Te debería quedar así:

Cita:
For each dr as DataRow in ds.Tables(0).Rows
sb.Append("Columna 1" + dr(0).ToString() + Chr(13) )
sb.Append("Columna 2" + dr(2).ToString() + Chr(13) )
sb.Append("Columna 3" + dr(3).ToString() + Chr(13) )
....
....
sb.Append("Columna X" + dr(x).ToString() + Chr(13) )
End
SAlu2
  #6 (permalink)  
Antiguo 15/07/2005, 10:46
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
ok
jaja
medio raro, pero creo que como funciona es asi...

Dim dr As DataRow
For Each dr In ds.Tables(0).Rows
sb.Append("Columna 1" & dr[0].ToString() & Chr(13) )

...
NEXT

verdad...?
ok

Ademas la clase stringbuilder debe ir asignadacon un with.?
wit sb
.append( bla bla bla)
.append( mas blas blas)
en with

ya andubo bien...
Muchas gracias de verdad.. sos un capo en esto..
  #7 (permalink)  
Antiguo 15/07/2005, 11:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
pero creo que como funciona es asi...
Dim dr As DataRow
For Each dr In ds.Tables(0).Rows
sb.Append("Columna 1" & dr[0].ToString() & Chr(13) )

...
NEXT
asi es.. solo que el dr es con paréntesis..

sb.Append("Columna 1" & dr(0).ToString() & Chr(13) )

Cita:
Ademas la clase stringbuilder debe ir asignadacon un with.?
wit sb
.append( bla bla bla)
.append( mas blas blas)
en with
El with lo puedes incluir si tu quieres... eso ya es cuestion de estilos..
  #8 (permalink)  
Antiguo 16/07/2005, 16:28
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
ok
Çmuchas GRAcias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.