2010-02-18 5 views
8

세션에서 데이터 테이블을 저장하고 C# .net에서 세션의 값을 검색하는 방법은 무엇입니까?세션에서 데이터 테이블 저장 및 검색

+1

을 세션 [ "BufferDatatable"] = dt; ((DataTable) Session [ "BufferDatatable"]). Rows.Add (titlelbl.Text, txtEnable.Text, txtValue.Text, txtValue.Text); 문제를 해결하면 – subash

+0

수 있습니까? – subash

답변

22

세션에 데이터 테이블을 추가

DataTable Tissues = new DataTable(); 

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


Session.Add("Tissues", Tissues); 

세션에서 해당 데이터 테이블을을 취득합니다 :

DataTable Tissues = Session["Tissues"] as DataTable 

또는

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

예를 들어, 데이터 테이블에 10,000 개의 레코드가있는 경우이 변경 사항은 응용 프로그램/페이지의 성능에 영향을 미칠 것으로 생각합니다. – Musikero31

+1

@ Musikero31 사용 방법에 따라 웹 페이지의 성능을 향상시킬 수 있습니다. –

1

당신은 그런 식으로 그것을 할 수 있지만, DataSet 개체에 저장 세션은 그리 효율적이지 않습니다. 많은 사용자가있는 웹 응용 프로그램을 사용하는 경우 서버 메모리가 실제로 막히게됩니다.

정말 그렇게해야한다면 데이터 세트가 필요하지 않은 즉시 세션에서 제거하는 것이 좋습니다.

2

이것은 보조 메모와 동일하지만 일반적으로 세션 및 ViewState의 크기를 작게 유지하려는 것입니다. 나는 일반적으로 ID와 소량의 패킷을 Session과 ViewState에 저장한다.

예를 들어 한 페이지에서 다른 페이지로 큰 데이터 청크를 전달하려는 경우 쿼리 문자열에 ID를 저장하고 해당 ID를 사용하여 데이터베이스 또는 파일의 데이터를 가져올 수 있습니다.

PS :하지만 내가 말했듯이,이 쿼리 :

2

세션에 DataTable를 저장하는 데에 전혀 관련이있을 수 있습니다 :

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

이 세션에서 DataTable를 검색하려면 :

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