2014-01-21 115 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