2010-02-18 20 views
8

¿Cómo almacenar una tabla de datos en sesión y recuperar los valores de la sesión en C# .net?Almacenar y recuperar tablas de datos de la sesión

+1

Session ["BufferDatatable"] = dt; ((DataTable) Session ["BufferDatatable"]). Rows.Add (titlelbl.Text, txtEnable.Text, txtValue.Text, txtValue.Text); resolvió el problema – subash

+0

¿Puede usted la guía por favor en ese caso? – subash

Respuesta

22

Añadir una tabla de datos en la sesión:

DataTable Tissues = new DataTable(); 

Tissues = dal.returnTissues("TestID", "TestValue");// returnTissues("","") sample  function for adding values 


Session.Add("Tissues", Tissues); 

retrive que tabla de datos de la sesión:

DataTable Tissues = Session["Tissues"] as DataTable 

o

DataTable Tissues = (DataTable)Session["Tissues"]; 
+1

Creo que esto afectará el rendimiento de la aplicación/página si, por ejemplo, la tabla de datos contiene 10.000 registros. – Musikero31

+1

@ Musikero31 Dependiendo de cómo lo use, podría mejorar el rendimiento de la página web. –

1

usted puede hacerlo así, pero el almacenamiento de un objeto DataSet en La sesión no es muy eficiente. Si tiene una aplicación web con muchos usuarios, obstruirá la memoria de su servidor muy rápido.

Si realmente debe hacerlo así, le sugiero que lo elimine de la sesión tan pronto como no necesite el DataSet.

2

esto es solo una nota al margen, pero generalmente lo que quiere hacer es mantener el tamaño en la sesión y ViewState pequeño. En general, solo almaceno identificaciones y pequeñas cantidades de paquetes en Session y ViewState.

por ejemplo, si desea pasar grandes trozos de datos de una página a otra, puede almacenar una identificación en la cadena de consulta y usar esa ID para obtener datos de una base de datos o un archivo.

PD: pero como he dicho, esto podría ser totalmente sin relación a su consulta :)

2

Para almacenar DataTable en la Sesión:

DataTable dtTest = new DataTable(); 
Session["dtTest"] = dtTest; 

Para recuperar DataTable de la Sesión:

DataTable dt = (DataTable) Session["dtTest"]; 
Cuestiones relacionadas