2010-02-18 22 views
8

Oturumda bir veri tabanını nasıl saklar ve C# .net içindeki oturumdan değerleri nasıl alabilirim?Oturumun veri tabanını saklama ve alma

+1

Oturum ["BufferDatatable"] = dt; ((DataTable) Oturumu ["BufferDatatable"]). Rows.Add (titlelbl.Text, txtEnable.Text, txtValue.Text, txtValue.Text); u pls bu durumda rehberlik sorunu – subash

+0

çözüldü? – subash

cevap

22

oturumuna bir datatable ekleyin:

DataTable Tissues = new DataTable(); 

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


Session.Add("Tissues", Tissues); 

oturumdan bu datatable Retrive:

DataTable Tissues = Session["Tissues"] as DataTable 

veya

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

Bu, örneğin, veritabanın 10,000 kayıt içeriyorsa, uygulamanın/sayfanın performansını etkileyeceğini düşünüyorum. Bunu nasıl kullandığınıza bağlı olarak Musikero31 @ – Musikero31

+1

, bu web sayfasının performansını artırabilirsiniz. –

1

Böyle yapabilirsin ama bir DataSet nesnesi içinde saklanması Seans çok verimli değil. Eğer kullanıcı dolu bir web uygulaması varsa, bu sunucu belleği gerçekten hızlı yapışmasına neden olur.

Eğer gerçekten yapmanız gerekiyorsa, DataSet'e ihtiyacınız olmadığı anda oturumdan kaldırmanızı öneririm.

2

Bu, bir yan not gibidir, ancak genellikle yapmak istediğiniz şey, Oturum ve ViewState küçük boyutlarını korumaktır. Genelde Oturum ve ViewState'de kimlikleri ve az miktarda paketi depolarım. Örneğin, bir sayfadan diğerine büyük veri gruplarını iletmek istiyorsanız, bir kimliğini sorgulama defterine kaydedebilir ve bir veri tabanından veya dosyadan veri almak için bu kimliği kullanabilirsiniz.

PS: ama dediğim gibi, bu sorguda :)

2

Oturumda DataTable saklamak için tamamen ilgisiz olabilir:

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

Oturum dan DataTable geri almak için:

DataTable dt = (DataTable) Session["dtTest"]; 
İlgili konular