2011-08-24 15 views
20

Tôi muốn kiểm tra phiên đó là null hoặc rỗng tức là một số điều như thế này:Kiểm tra phiên làm việc nếu có sản phẩm nào hay không

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

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

Hoặc chỉ cần

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

     // The code 
    } 

vì đôi khi tôi chỉ kiểm tra với:

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

Tôi phải đối mặt ing ngoại lệ:

Null Reference ngoại lệ

+2

có một cái nhìn vào bài đăng này http://stackoverflow.com/questions/234973/what-is-the-best-way-to-determine-a-session-variable-is-null -hoặc-trong-c – Bobby

+0

thực sự tốt đẹp, cảm ơn rất nhiều. –

Trả lời

43

Sử dụng này nếu biến phiên emp_num sẽ lưu trữ một chuỗi:

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

Nếu nó không lưu trữ một chuỗi, nhưng một số loại khác , bạn chỉ nên kiểm tra null trước khi truy cập vào giá trị, như trong ví dụ thứ hai của bạn.

2

Trước tiên, bạn nên kiểm tra xem có Session["emp_num"] tồn tại trong phiên không.

Bạn có thể yêu cầu các đối tượng session nếu indexer của nó có giá trị emp_num hoặc sử dụng string.IsNullOrEmpty(Session["emp_num"])

5

Bạn cần phải kiểm tra xem Session["emp_num"] không null là trước khi cố gắng để chuyển đổi nó thành một chuỗi nếu không bạn sẽ nhận được một ngoại lệ tham khảo null.

Tôi sẽ đi với ví dụ đầu tiên của bạn - nhưng bạn có thể làm cho nó hơi "thanh lịch" hơn một chút.

Có một vài cách khác nhau, nhưng những người mà lò xo để ý là:

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

hoặc

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

này sẽ trả về null nếu biến không tồn tại hoặc không phải là một chuỗi.

+0

Cảm ơn bạn rất nhiều. –

7
if (HttpContext.Current.Session["emp_num"] != null) 
{ 
    // code if session is not null 
} 
  • nếu ở trên không thành công.