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

Importar dataset a un archivo plano

Estas en el tema de Importar dataset a un archivo plano en el foro de .NET en Foros del Web. Buenos dias, Me podrian ayudar con lo siguiente: Tengo un dataset que alimento de un procedimiento almacenado, necesito coger los datos de este dataset e ...
  #1 (permalink)  
Antiguo 23/06/2008, 09:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Importar dataset a un archivo plano

Buenos dias,

Me podrian ayudar con lo siguiente:

Tengo un dataset que alimento de un procedimiento almacenado, necesito coger los datos de este dataset e importarlo a un archivo plano (.txt), les agradezco la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 24/06/2008, 15:50
Avatar de gaarellanob  
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

C# ó VB

codigo en VB para escribir en un txt lo que contiene un texbox

CodeBehind

Imports System.IO
'invocar la libreria file en .NET

Private Sub BtnGrabarTexto_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGrabarTexto.Click

'declarar una variable para la escritura
'texto para un fichero

Dim oEscritor As StreamWriter

'crear un fichero vacio y obtener
'un objeto StreamWriter para escrbir en el fichero

oEscritor = File.CreateText(Environment.CurrentDirectory & "\" & Me.TxtNombreFichero.Text & ".doc")

'file.CreateText(url del archivo nuevo)
'escribir en el fichero el contenido del control textbox

oEscritor.Write(Me.TxtTextoFichero.Text)
'cerrar el objeto que tambn cierra el fichero y eliminar el objeto
oEscritor.Close()
oEscritor = Nothing



End Sub

'En c# es similar
________________

C# llenar una grilla con datos de un dataset tipado
Nota: para crear un data set tipado, click boton derecho en la raiz de tu proyecto web, agregar ITEM, seleccionas el q se llama dataSet y listo.


protected void Button1_Click(object sender, EventArgs e)
{

//add nuevo item/ dataset.xsd

//ai q instanciar el dataset tipado para poder usar el metodo
//y llenar el datasource del Gridview...


DataSet1 miDataSetTipado = new DataSet1();
DataSet1TableAdapters.nombreDeTuTableAdapter miTableAdapter = new DataSet1TableAdapters.nombreDeTuTableAdapter();
miTableAdapter.Fill(miDataSetTipado.nombreDeTablaQ ueTieneLosDatos);
//miTableAdapter.GetData();


GridView1.DataSource = miTableAdapter.GetData();
GridView1.DataBind();
}
//en vb es similar


codigo que crea un txt con datos sacados de un textbox que se llena de un data set =S
la interfaz es dos txt uno llamado txtNombreFichero y otro llamado txtTextoFichero un boton en el cual pondremos este codigo en su evento click...

protected void Button1_Click(object sender, EventArgs e)
{

//add nuevo item/ dataset.xsd


StreamWriter oEscritor;

DataSet1 miDataSetTipado = new DataSet1();
DataSet1TableAdapters.nombreDeTuTableAdapter miTableAdapter = new DataSet1TableAdapters.nombreDeTuTableAdapter();
miTableAdapter.Fill(miDataSetTipado.nombreDeTuTabl a);
//miTableAdapter.GetData();



foreach (DataRow miDataRow in miTableAdapter.GetData().Rows)
{

int idTuCampo = Convert.ToInt32(miDataRow["IdTuCampo"]);
string TuCampo = miDataRow["TuCampoBD"].ToString();
string TuCampo2 = miDataRow["TuCampoBD2"].ToString();
string TuCampo3 = miDataRow["TuCampoBD3"].ToString();

txtTextoFichero.Text = idTuCampo+ "_" + TuCampo + "_" + TuCampo2 + "_" + TuCampo3;
}

//para imprimir el dato seleccionado
//txtTextoFichero.Text = miTableAdapter.GetData().Rows[0].ItemArray[1].ToString();

txtTextoFichero.DataBind();



oEscritor = File.CreateText(TxtNombreFichero.Text + ".txt");
oEscritor.Write(txtTextoFichero.Text);
oEscritor.Close();
oEscritor.Dispose();
}

codigo fuera de alta cohesion y bajo acoplamiento, debe ser hecho como se debe, pero funciona
Espero tus comentarios y que te sirva
shau
  #3 (permalink)  
Antiguo 24/06/2008, 16:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

Muchas gracias , pero necesito exportar directamente el dataset con el fin de no consumir recursos, sin utilizar grillas ni tablas. Es posible
  #4 (permalink)  
Antiguo 24/06/2008, 17:22
Avatar de gaarellanob  
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

mmm no te comprendo
la verdad que el codigo que puse al ultimo
lee tu data set y crea un archivo .txt con el nombre q tu le indiques
al ser dataset consume menos "recursos" de tu BD, ya que traabaja
en escenarios conectados y desconectados, es decir, si no tienes coneccion con tu BD
el dataset tendrá los datos y cumplira con mostrarlos...

si no es eso explicame con manzanas por el sueño me tiene mal
xD




saludos q estes bien


shau...
  #5 (permalink)  
Antiguo 24/06/2008, 17:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

pero utilizar una grid intermedio, por el sigueinte codigo

GridView1.DataSource = miTableAdapter.GetData();
GridView1.DataBind();
  #6 (permalink)  
Antiguo 24/06/2008, 17:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

lo que necesito es tomar mi dataset y leer fila por fila y escribirla en un archivo .csv
  #7 (permalink)  
Antiguo 25/06/2008, 09:47
Avatar de gaarellanob  
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

protected void Button1_Click(object sender, EventArgs e)
{

//add nuevo item/ dataset.xsd


StreamWriter oEscritor;

DataSet1 miDataSetTipado = new DataSet1();
DataSet1TableAdapters.nombreDeTuTableAdapter miTableAdapter = new DataSet1TableAdapters.nombreDeTuTableAdapter();
miTableAdapter.Fill(miDataSetTipado.nombreDeTuTabl a);
//miTableAdapter.GetData();

//comilla doble
string charEspecial = "\"";

foreach (DataRow miDataRow in miTableAdapter.GetData().Rows)
{

int idTuCampo = Convert.ToInt32(miDataRow["IdTuCampo"]);
string TuCampo = miDataRow["TuCampoBD"].ToString();
string TuCampo2 = miDataRow["TuCampoBD2"].ToString();
string TuCampo3 = miDataRow["TuCampoBD3"].ToString();

txtTextoFichero.Text = charEspecial + idFoto + charEspecial + ", " + charEspecial + titulo + charEspecial + ", " + charEspecial + comentario + charEspecial + ", " + charEspecial + link + charEspecial;
}

//para imprimir el dato seleccionado
//txtTextoFichero.Text = miTableAdapter.GetData().Rows[0].ItemArray[1].ToString();

txtTextoFichero.DataBind();



oEscritor = File.CreateText(TxtNombreFichero.Text + ".csv");
oEscritor.Write(txtTextoFichero.Text);
oEscritor.Close();
oEscritor.Dispose();
}

resultado en tu csv:
"idTuCampo","TuCampo","TuCampo2","TuCampo3"

disculpa, lo del gridview es solo un ejemplo de mas de los tantos, de como usar un dataset tipado.

Este codigo lo que hace, es que toma el dato del txtNombreFichero.Text (que va hacer el nombre que TU le das al archivo csv) y el dato del txtTextoFichero.Text (que va hacer el contenido del textbox que se llena al presionar el boton crear archivo) lo hace simultaneamente, puedes hacer que se llene el textbox txtTextoFichero primero con el evento de otro boton y una vez que se llene tu txt presionar el otro boton que se llama crear archivo
..
espero te sirva

si encontraste la respuesta en otro lugar publicala, porque puede haber gente que necesite lo mismo que tú...

hasta pronto...

shau.
  #8 (permalink)  
Antiguo 21/01/2010, 13:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Importar dataset a un archivo plano

Hola,
El primer código de ejemplo me ha servido mucho, sin embargo al ejecutar la aplicación me genera el archivo.doc sin absolutamente nada en el.
¿Cómo podria solucionar este problema?
Es una aplicación que he ido desarrollando en vb.net
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:24.