2013-05-06 38 views
-1

例如,我有如何在C#中保存会话?

Session["PatientName"] = patientNameTextBox.Text; 

信息输入到textbox后,按钮被点击保存会话,但我不太清楚该怎么做。

任何帮助表示赞赏。谢谢 :)。

+0

你上面的代码会保存会话中的文本,你的意思是保存吗?你是否在检索价值时遇到问题,或者你是否想将其保存在永久存储器中 – Habib 2013-05-06 05:39:59

+0

你的会话很好走 – 2013-05-06 06:19:16

+0

@Habib:你目前的状况如何? – 2013-05-06 07:46:48

回答

3

如果您针对Button_Click事件放置代码,则上面的行Session["PatientName"] = patientNameTextBox.Text;会将Text值保存在会话中。为了找回它回来,你可以这样做:

string patientName = Session["PatientName"] != null ? Session["PatientName"].ToString() 
                : ""; //or null 

切记不要过多信息存储在会话,因为它们是维持服务器为每个用户。

+0

可以简化为'string parientName = Session [“PatientName”] ?? “”;'。那就是如果你想首先避免null。 – SimpleVar 2013-05-06 05:29:54

+0

@YoryeNathan,是的,也可以使用null合并运算符。谢谢 – Habib 2013-05-06 05:30:49

+0

顺便说一句,我不确定这是回答他的问题。现在,他有一个变量的数据,但我感觉他已经知道如何做到这一点(所有的复杂性......) - 他想以某种方式保存它。但是,想要的节约时尚却很模糊。 – SimpleVar 2013-05-06 05:36:18

1

您可以检查是否值是会话里面做这个:

if (Session["PatientName"] != null) 
    ... 

您可以通过执行此检索值:

// Remember to cast it to the correct type, because Session only returns objects. 
string patientName = (string)Session["PatientName"]; 

如果您不能确定是否有内部值,你想要一个默认值,试试这个:

// Once again you have to cast. Use operator ?? to optionally use the default value. 
string patientName = (string)Session["PatientName"] ?? "MyDefaultPatientName"; 

把你的答案放回到一个文本框或标签:

patientLabel.Text = patientName; 
0

这怎么可以节省单击按钮时会话:

protected void buttonSaveSession_Click(object sender, EventArgs e) 
{ 
    string patientName = textBoxPatientName.Text; 
    Session["PatientName"] = patientName; 
} 

这是你可以检查或某人有一个会话:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["PatientName"] != null) 
    { 
     //Your Method() 
    } 
}