DataSet y Array

14/05/2007 - 19:39 por Lu´pita | Informe spam
Hola!

Necesito enviar ya sea a un dataset o array 107 preguntas que se le deberan
presentar al usuario de una en una, el problema no es este, el problema
radica en que solo debo traer esas preguntas de la base de datos una sola vez
para no tronar el servidor con muchas llamadas ya que esta página será
utilizada muchas veces al día.

Espero alguien pueda darme alguna idea.

Ya lo intente metiendo los datos a un array pero cada que ejecuto el código
de cualquier botón el array aparece vacío.

Gracias y saludos...

Preguntas similare

Leer las respuestas

#1 Diego Jancic
14/05/2007 - 19:49 | Informe spam
Hola,
La verdad que no entendi muy bien cual es el problema... Si queres
hacer Cache del resultado que traes de la base de datos, podes hacer:

Application["resultado"] = dataset1;


Y para leer

DataSet ds = (DataSet) Application["resultado"];

Saludos,
Diego
Respuesta Responder a este mensaje
#2 Lu´pita
14/05/2007 - 20:01 | Informe spam
"Diego Jancic" wrote:

Hola,
La verdad que no entendi muy bien cual es el problema... Si queres
hacer Cache del resultado que traes de la base de datos, podes hacer:

Application["resultado"] = dataset1;


Y para leer

DataSet ds = (DataSet) Application["resultado"];

Saludos,
Diego


Respuesta Responder a este mensaje
#3 Alberto Poblacion
14/05/2007 - 20:08 | Informe spam
"Lu´pita" wrote in message
news:
Ya lo intente metiendo los datos a un array pero cada que ejecuto el
código
de cualquier botón el array aparece vacío.



Eso es porque las páginas asp.net "no guardan estado", es decir, cada
vez que desde el navegador haces un "click", se crea la Clase en el
servidor, se ejecuta, y se destruye. Y al siguiente click, lo mismo. Por eso
no se conserva nada en un array si el array lo guardas en una variable de
clase.

El remedio es usar alguna de las técnicas de conservación del estado de
las que dispone asp.net: Session, ViewState, Application, Cache... Todas
ellas deberías conocerlas porque tienen distintas características y son
aplicables bajo distintas circunstancias dependiendo de lo que quieras
conseguir. En este caso particular, pienso que el mecanismo más adecuado
consistiría en usar el objeto Cache:

En Page_Load:

miArray = (miTipoDeArray)Cache["MiArray"];
if (miArray ==null)
{
//(Aquí consultar base de datos y guardar en miArray)
Cache["MiArray"] = miArray;
}
Respuesta Responder a este mensaje
#4 Lu´pita
14/05/2007 - 20:34 | Informe spam
Y como le hago cuando kiera llamar a la variable Cache?

"Alberto Poblacion" wrote:

"Lu´pita" wrote in message
news:
> Ya lo intente metiendo los datos a un array pero cada que ejecuto el
> código
> de cualquier botón el array aparece vacío.

Eso es porque las páginas asp.net "no guardan estado", es decir, cada
vez que desde el navegador haces un "click", se crea la Clase en el
servidor, se ejecuta, y se destruye. Y al siguiente click, lo mismo. Por eso
no se conserva nada en un array si el array lo guardas en una variable de
clase.

El remedio es usar alguna de las técnicas de conservación del estado de
las que dispone asp.net: Session, ViewState, Application, Cache... Todas
ellas deberías conocerlas porque tienen distintas características y son
aplicables bajo distintas circunstancias dependiendo de lo que quieras
conseguir. En este caso particular, pienso que el mecanismo más adecuado
consistiría en usar el objeto Cache:

En Page_Load:

miArray = (miTipoDeArray)Cache["MiArray"];
if (miArray ==null)
{
//(Aquí consultar base de datos y guardar en miArray)
Cache["MiArray"] = miArray;
}




Respuesta Responder a este mensaje
#5 Diego Jancic
14/05/2007 - 23:23 | Informe spam
Hola,
es como te dice al principio:

miArray = (miTipoDeArray)Cache["MiArray"];

Te recomiendo que esto o algo similar:
http://openmymind.net/index.aspx?documentId=6

Saludos,
Diego
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida