2011-08-24 135 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 
} 
  • 如果在所有上面的失败。