2011-08-24 201 views
20

我要檢查該會話爲空或空即有些事情是這樣的:檢查會話是否爲空或不

if(Session["emp_num"] != null) 
{ 

    if (!string.IsNullOrEmpty(Session["emp_num"].ToString())) 
      { 
       //The code 
      } 
} 

或者只是

if(Session["emp_num"] != null) 
    { 

     // The code 
    } 

因爲有時當我只檢查與:

 if (!string.IsNullOrEmpty(Session["emp_num"].ToString())) 
       { 
        //The code 
       } 

我面對以下荷蘭國際集團的例外:

空引用例外

+2

看看這個帖子 http://stackoverflow.com/questions/234973/what-is-the-best-way-to-determine-a-session-variable-is-null -or-empty-in-c – Bobby

+0

非常好,非常感謝。 –

回答

43

使用這個命令會話變量emp_num將存儲的字符串:

if (!string.IsNullOrEmpty(Session["emp_num"] as string)) 
{ 
       //The code 
} 

如果不存儲字符串,但一些其他類型,您應該在訪問該值之前檢查null,如第二個示例中所示。

2

您應該首先檢查會話中是否存在Session["emp_num"]

你可以問會話對象,如果其索引有emp_num值或使用string.IsNullOrEmpty(Session["emp_num"])

5

您需要檢查Session["emp_num"]null試圖將其轉換爲字符串,否則你會得到一個空引用異常之前。

我會與你的第一個例子 - 但你可以使它稍微更「優雅」。

有一對夫婦的方式,但彈簧想到的是:

if (Session["emp_num"] is string) 
{ 
} 

if (!string.IsNullOrEmpty(Session["emp_num"] as string)) 
{ 
} 

這將返回null如果變量不存在或不一個字符串。

+0

非常感謝。 –

7
if (HttpContext.Current.Session["emp_num"] != null) 
{ 
    // code if session is not null 
} 
  • 如果在所有上面的失敗。