it-roy-ru.com

Проверка сеанса, если он пуст или нет

Я хочу проверить, что сеанс является нулевым или пустым, т.е. что-то вроде этого:

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
                }

Я сталкиваюсь со следующим исключением:

Исключение нулевой ссылки

23
Anyname Donotcare

Используйте это, если переменная сеанса emp_num будет хранить строку:

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

Если он хранит не строку, а какой-то другой тип, вам следует просто проверить наличие нуля, прежде чем получить доступ к значению, как во втором примере.

51
Roy Goode
if (HttpContext.Current.Session["emp_num"] != null)
{
     // code if session is not null
}
  • если вообще выше не удается.
9
Nirali

Вы должны проверить, что Session["emp_num"] не является null, прежде чем пытаться преобразовать его в строку, иначе вы получите исключение нулевой ссылки.

Я бы пошел с вашим первым примером - но вы могли бы сделать его немного более «элегантным».

Есть несколько способов, но на ум приходят следующие:

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

или же 

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

Это возвратит нуль, если переменная не существует или не является строкой.

5
ChrisF

Сначала вы должны проверить, существует ли Session["emp_num"] в сеансе.

Вы можете спросить объект сеанса, имеет ли его индексатор значение emp_num или использовать string.IsNullOrEmpty(Session["emp_num"])

2
Peter

Если это простой сеанс, вы можете применить Null Проверить с помощью if(Session["Session_name"] !=null)

но если это сеанс списка, то вам нужно применить 1 или 2

Опция 1:  

    if (((List<int>)(Session["Session_name"])) != null && 
       (List<int>)Session["Session_name"])).Count > 0)

Вариант 2:

List<int> val= Session["Session_name"] as List<int>`;`//Get the value`
if (val.FirstOrDefault() != null)
0
Chandan Kumar