C#法式中session值的保留辦法和轉為字符串的辦法總結。本站提示廣大學習愛好者:(C#法式中session值的保留辦法和轉為字符串的辦法總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#法式中session值的保留辦法和轉為字符串的辦法總結正文
C#中保留Session的三種辦法及Web.Config設置
保留session到sql server;,須要指定Sql Server;辦事器,這類辦法由於要讀寫數據庫最慢
<sessionState mode="SQLServer" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
保留session到windows過程,要應用這類辦法,須要翻開aspnet_state.exe辦事,經由過程此辦法,我們可以將session保留到其它辦事器, 如許可以完成多台辦事器的session同享
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42626" cookieless="false" timeout="20" />
默許情形,.net將session保留到以後過程中,這類方法最快,然則不克不及多台辦事器同享session
<sessionState mode=”InProc” cookieless=”false” timeout=”20” />
將Session 的值轉為 String
在現實操作傍邊,我們常常會碰到將 Session 的值轉為 String 去斷定能否為空或許斷定能否有權限拜訪某頁,這裡的轉換進程假如用得不適當會拋出異常,給拜訪者帶來欠好的用戶體驗。這裡我把它寫成筆記,以供參考。
1.當 Session["a"] == null 時,
Session["a"].ToString() 拋出異常;
(string)Session["a"] 為 null;
Convert.ToString(Session["a"]) 為 ""。
2.當 Session["a"] == "" 時,
它們的值都為 ""。
所以,在斷定 Session["a"] 能否有值時,假如用“.ToString()”,那末必須依照上面的格局與次序寫:
if (Session["a"] != null && Session["a"].ToString() != "")
在這裡,要留意斷定的次序:先斷定能否為 null,再斷定能否為 empty。假如 Session["a"] 為 null,則 Session["a"] != null 為 false 天然不會履行 .ToString(),也就不會報錯;假如 Session["a"] 不為 null,則履行 .ToString() 也不會報錯。
同理 if (Session["a"] == null || Session["a"].ToString() == "") 此句也正當可用。
用 .ToString() 的辦法寫格局比擬固定,假如換成用 (string) 寫,會比擬自在:
if ((string)Session["a"] != null && (string)Session["a"] != "") if (Session["a"] != null && (string)Session["a"] != "")
這兩種寫法都是可行的,並且對 null 和 empty 的斷定次序沒有關系。
最簡略的辦法就是用 Convert.ToString
if (Convert.ToString(Session["aaa"]) == "")
不論 Session["a"] 為 null 照樣 empty,Convert.ToString(Session["aaa"]) 都是 empty。