web-dev-qa-db-fra.com

Session de vérification si vide ou non

Je veux vérifier que la session est nulle ou vide, c'est-à-dire quelque chose comme ceci:

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

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

Ou juste

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

       // The code
    }

parce que parfois quand je vérifie seulement avec:

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

Je fais face à l'exception suivante:

Exception de référence nulle

23
Anyname Donotcare

Utilisez ceci si la variable de session emp_num va stocker une chaîne:

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

S'il ne stocke pas une chaîne, mais un autre type, vous devez simplement vérifier la valeur null avant d'accéder à la valeur, comme dans votre deuxième exemple.

51
Roy Goode
if (HttpContext.Current.Session["emp_num"] != null)
{
     // code if session is not null
}
  • si du tout échoue.
9
Nirali

Vous devez vérifier que Session["emp_num"] n'est pas null avant d'essayer de le convertir en chaîne, sinon vous obtiendrez une exception de référence null.

J'irais avec votre premier exemple - mais vous pourriez le rendre un peu plus "élégant".

Il y a plusieurs façons, mais celles qui viennent à l'esprit sont:

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

ou 

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

Cela retournera null si la variable n'existe pas ou n'est pas une chaîne.

5
ChrisF

Vous devez d’abord vérifier si Session["emp_num"] existe dans la session.

Vous pouvez demander à l'objet de session si son indexeur a la valeur emp_num ou utiliser string.IsNullOrEmpty(Session["emp_num"])

2
Peter

Si c’est une session simple, vous pouvez appliquer Null Check en utilisant if(Session["Session_name"] !=null)

mais si c'est une session d'une liste alors vous devez appliquer Soit 1 ou 2

Option 1:  

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

Option 2:

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