2013-04-04 2 views
1

J'ai un curseur d'image, et dans IE j'ai une erreur.NullReferenceException n'a pas été gérée par le code utilisateur

Voici mon code:

*//Složka s obrázky partnerů 
string slozka = HttpContext.Current.Server.MapPath("~/Partneri"); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    int cislo_obrazku = 0; 
    if (!Page.IsPostBack) 
    { 
     ArrayList slide = new ArrayList(); 
     System.IO.DirectoryInfo inputDir = new System.IO.DirectoryInfo(slozka); 
     foreach (FileInfo eachfile in inputDir.GetFiles()) 
     { 
      slide.Add(eachfile.ToString()); 
      cislo_obrazku += 1; 
     } 
     Session["cislo_obrazku"] = cislo_obrazku; 
     Session["obrazky"] = slide; 
     Casovac(this, new EventArgs()); 
    } 
} 

protected void Casovac(object sender, EventArgs e) 
{ 
    ArrayList slide = new ArrayList(); 
    slide = (ArrayList)Session["obrazky"]; 
    if ((Session["aktualni"] != null) && (Convert.ToInt32(Session["aktualni"]) != Convert.ToInt32(Session["cislo_obrazku"]) - 1)) 
    { 
     //Posun na další 
     Image1.ImageUrl = "~\\Partneri\\" + slide[Convert.ToInt32(Session["aktualni"]) + 1].ToString(); 
     Session["aktualni"] = Convert.ToInt32(Session["aktualni"]) + 1; 
    } 
    else if (Session["aktualni"] == Session["cislo_obrazku"]) 
    { 
     //Pokud není další, začni znovu 
     Image1.ImageUrl = "~\\Partneri\\" + slide[0].ToString(); 
     Session["aktualni"] = 0; 
    } 
    else 
    { 
     if (Convert.ToInt32(Session["cislo_obrazku"]) != 0) 
     { 
      //Initally load the first image in the image control 
      Image1.ImageUrl = "~\\Partneri\\" + slide[0].ToString(); 
      Session["aktualni"] = 0; 
     } 
    } 
} 

Erreur: NullReferenceException was unhandled by user code

point d'erreur à ceci:

Image1.ImageUrl = "~\\Partneri\\" + slide[0].ToString(); 

et

Image1.ImageUrl = "~\\Partneri\\" + slide[0].ToString(); 

Avez-vous une idée?

+1

Ce n'est pas un ASP classique. Vous devez le marquer comme asp.net et C# – John

+1

Avez-vous vérifié que la diapositive [0] n'est pas nulle? – OldProgrammer

+1

Evidemment, 'slide' soit' slide [0] 'soit' null' – 2kay

Répondre

0

L'objet de session obrazky n'a pas été initialisé.

Ajouter un chèque nul après:

slide = (ArrayList)Session["obrazky"]; 
+0

null vérifier? Comment? – koky

+0

'si (slide == null || slide [0] == null)' – jgauffin

+0

Erreur encore ... je n'ai pas écrit tout le code, maintenant le code sur le dessus est édité et tout son ... – koky

2

NRE est peut-être l'exception plus facile à comprendre. C'est aussi l'un des problèmes les plus courants lorsque vous n'avez pas codé assez défensivement.

Tout simplement, cela signifie que vous essayez d'accéder à une propriété/méthode sur un objet null.

Dans votre cas

slide[0].ToString(); 

soit

  • slide est nul
  • slide[0] est nulle.

Définir un point d'arrêt, déboguer votre application. Déterminez ce qui est nul, et tenez-en compte (par exemple, avec une valeur par défaut) ou lancez une exception plus significative si c'est réellement une circonstance exceptionnelle pour que cet objet soit nul.

Questions connexes