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

Duda sobre DataSet

Estas en el tema de Duda sobre DataSet en el foro de .NET en Foros del Web. Que tal buen día. Quisiera saber si es posible lo siguiente. Llenar un DataSet desde una función y desde una segunda función leer dicho DataSet. ...
  #1 (permalink)  
Antiguo 03/04/2008, 11:05
 
Fecha de Ingreso: octubre-2003
Mensajes: 41
Antigüedad: 20 años, 5 meses
Puntos: 0
Duda sobre DataSet

Que tal buen día.

Quisiera saber si es posible lo siguiente. Llenar un DataSet desde una función y desde una segunda función leer dicho DataSet.

todo esto por que resulta que cuando intento hacer esto me sale el siguiente error:

No se puede encontrar la tabla 0.

Línea 543: Master.LabelInforma.Text = dSet2.Tables[0].Rows[0]["id_subtema"].ToString();


si pongo esta linea desde la misma funcion donde lleno el DataSet funciona correctamente; ya intente crear el DataSet a nivel de la pagina (no desde alguna funcion) pensando que fuese por que no se pudiera acceder, de tal forma que queda asi:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Consulta_Encuesta : System.Web.UI.Page
{
//Creacion del DataSet
public DataSet dSet2 = new DataSet();

public void funcion1()
{
//*** Llenado del DataSet ***
dAdapter1 = new SqlDataAdapter(strSql, conexion);
dAdapter1.Fill(dSet2);

//Desde aqui si funciona bien la lectura del DataSet
Master.LabelInforma.Text=dSet2.Tables[0].Rows[0]["id_subtema"].ToString();
}

public void funcion2()
{
//*** Lectura del DataSet ***

//Desde aqui no funciona bien la lectura del DataSet
Master.LabelInforma.Text=dSet2.Tables[0].Rows[0]["id_subtema"].ToString();

}

}



De ante mano agradesco su ayuda, gracias.
  #2 (permalink)  
Antiguo 03/04/2008, 14:44
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Duda sobre DataSet

Intenta Poner algo asi:

Código:
//*** Llenado del DataSet ***
dAdapter1 = new SqlDataAdapter(strSql, conexion);
dAdapter1.Fill(dSet2,"NombreDeTuTabla");
Espero te funcione
  #3 (permalink)  
Antiguo 08/04/2008, 04:44
Avatar de andriuch  
Fecha de Ingreso: abril-2004
Mensajes: 65
Antigüedad: 20 años
Puntos: 0
Re: Duda sobre DataSet

Es lógico que te falle, pq para llamar a la funcion2 hace un postback y se vuelve a ejecutar
Cita:
public DataSet dSet2 = new DataSet();
por lo tanto dSet2 vuelve a estar vacio.

Puedes hacer 2 cosas, llenas el dataset y lo metes en el ViewState y luego lo consultas desde ahi, o lo rellenas cada vez que quieras usarlo de la siguiente forma:

Cita:
private void llenaDset()
{
//*** Llenado del DataSet ***
dAdapter1 = new SqlDataAdapter(strSql, conexion);
dAdapter1.Fill(dSet2);
}

public void funcion1()
{
llenaDset();
Master.LabelInforma.Text=dSet2.Tables[0].Rows[0]["id_subtema"].ToString();
}

public void funcion2()
{
llenaDset();
Master.LabelInforma.Text=dSet2.Tables[0].Rows[0]["id_subtema"].ToString();
}
Espero que te haya ayudado.

Un saludo.
  #4 (permalink)  
Antiguo 27/06/2010, 17:17
Avatar de xrojas  
Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Duda sobre DataSet

Y si es un select anidado que me traiga varias tablas que nombre de tabla escirbo?
  #5 (permalink)  
Antiguo 28/06/2010, 08:24
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Duda sobre DataSet

Bueno no se si mi solución sea muy buena pero en ese caso yo crearia una vista de ese query y utilizaria ese nombre de la vista para llenar el dataset, es decir, en lugar de NombreDeTuTabla poner el NombreDeTuVista.
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 09:45.