2012-09-03 32 views
3

我已经创建了我必须在内存中维护数据表&一些变量的网站。数据表或varibales中的数据/值将根据记录的用户而不同。如何维护它?在整个会话期间维护数据表和变量

+0

关于会议 - 请注意,即使您在多个选项卡中运行网站,会话变量也会在它们之间重复使用。 – sventevit

回答

3

你可以将它们保存为

DataTable dt = new DataTable(); 
// I assumed that dt has some data 

Session["dataTable"] = dt; // Saving datatable to Session 
// Retrieving 
DataTable dtt = (DataTable) Session["dataTable"]; // Cast it to DataTable 

int a = 43432; 
Session["a"] = a; 
// Retrieving 
int aa = (int) Session["a"]; 

// classes 
    class MyClass 
    { 
    public int a { get; set; } 
    public int b { get; set; } 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    MyClass obj = new MyClass(); 
    obj.a = 5; 
    obj.b = 20; 

    Session["myclass"] = obj; // Save the class object in Session 
     // Retrieving  
     MyClass obj1 = new MyClass(); 
     obj1 = (MyClass) Session["myclass"]; // Remember casting the object 
    } 
+0

我是否也可以在会话中存储自定义类对象的值? –

+0

@RohitChaudhari - 是的,你可以将任何东西存储到会话对象中。 – sventevit

+0

是的,你可以存储任何数据类型。会话支持对象数据类型,并且所有类型都是从对象数据类型派生的。 –

2

使用与数据表会话的最佳方式是....

public class clsSession 
    { 
     public static DataTable dtEmp 
     { 
      get 
      { 
       if (HttpContext.Current.Session["dtEmp"] != null) 
       { 
        return (DataTable)HttpContext.Current.Session["dtEmp"]; 
       } 
       else 
        return new DataTable(); 
      } 
      set 
      { 
       HttpContext.Current.Session["dtEmpAddres"] = value; 
      } 
     } 
    } 

您可以使用店内的数据表作为clsSession.dtEmp = new DataTable();

+0

你能解释为什么session中的变量名与set不同吗? – Hitesh