2014-01-21 64 views
0

我有4个页面(VS2012)。第一种形式根据搜索填充数据。第二页只是一个中间页面,它将链接到form 3form 4。当form 3关闭时,此中间页面打开。这个中间页面的工作是保存变量并传递到form 3form 4。我正在尝试使用会话变量而不是查询字符串。vb.net中的“会话变量”

  1. 我可以在作为查询字符串从表单1传递的中间页面中创建会话变量吗?
  2. 我可以在表单3和表单4中读取这些会话变量吗?
  3. 我将在Page_Load事件中写入会话变量吗?
  4. 使用会话变量时还应该考虑什么?

我希望我已经正确地给出了所有的信息。

+2

1.是2.yes。是的上再也 –

回答

1
  1. 是的,你可以在中间页面创建会话变量
  2. 是的,你可以在你的应用程序读取的形式任何人的任何这些会话变量
  3. 是的,你可以写添加/更新会话在Page_Load事件
  4. 一旦您完成使用它们在你的应用程序

希望这有助于您应该删除会话变量的变量。

+0

我需要有添加和读取形成在Page_Load事件右侧的会话变量? – Nita

+0

不,它不仅限于Page_Load事件。您可以在任何页面或控件事件中操作会话变量。 –

+0

我在我的中间页面(表单2)中有“Session(”PatronID“)= GVPatID”然后我在表单3中有“lblPatID.Text = CType(Session.Item(”PatronID“),String)表单3,表单2打开,但会话变量不以表单2显示。我是否还必须在表单2中添加读取会话变量? – Nita

2

您的前3个问题的答案很简单:是的,是的,是的。
至于最后一个问题:当使用Session变量注意:

  • 会话内存是基于用户使用您的服务器上,因此对可扩展性的效果,换句话说,你可以有多少用户服务每台服务器。
  • 如果将应用程序托管在服务器场中,则需要确保服务器场中的所有服务器都可以访问相同的会话状态。在这种情况下,您可能需要切换到另一个会话状态提供程序(默认情况下会话变量存储在服务器的内存中)。
  • 休息一段时间后会话超时。所以要准备好,当用户请求一个页面时,内存可能会消失。
  • 您可能希望为用户提供一个选项,以清除会话变量,如果他或她想重新开始。

有关会话内存的详细介绍,请参阅MSDN上的page

+0

感谢Markus,这有很多帮助。 – Nita

1

当你使用会话变量,那么你将不再需要你的第二页。会话数据存储在服务器上的应用程序范围中。

当您保存/坚持,你可以简单地将它保存如下

Session("PatronID") = "GVPatID" 

在加载/检索,你可以简单地使用它遵循

lblPatID.Text = Session("PatronID") 

存储在任何数据的数据数据会话变量有效可以保留,直到用户浏览会话过期,超时或直到窗口关闭,此时会话被视为结束。

这是很好的做法,处理会话数据如下

Session.Abandon 
0

感谢ZAJ和Mo 我做了以下修改形成2个页面加载事件,这是工作的方式我想 GVPatID =的Request.QueryString(“值1”)

If GVPatID = Nothing Then 
     lblPatID.Text = CType(Session("PatronID"), String) 
    Else 
     Session("PatronID") = GVPatID 
     lblPatID.Text = GVPatID 
    End If