La référence d'objet n'est pas définie à une instance d'un objet

younes-zi -  
ElementW Messages postés 5690 Statut Contributeur -
il me dit que le problème est la ;

string file = "~/Fichier" + Session["sb"].ToString() + "_" + Session["salle"].ToString() + ".pdf";

et aussi :
La référence d'objet n'est pas définie à une instance d'un objet

ps : je veux exporter les données vers un fichier PDF

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    Bonjour
    La politesse n'est pas en option ici.
    Et quelle est ta question?
    Bon, je la devine, et voilà la réponse:
    soit
    Session["sb"]
    soit
    Session["salle"]
    soit
    Session
    lui-même vaut null. Il faut que tu fasses les vérifications nécessaires (blocs de
    if
    ) pour gérer les cas où il manque un des objets que tu veux.
    Pourquoi cela arrive? Impossible de le dire sans plus de détails sur ton code, particulièrement la/les bibliothèque(s) utilisée.
    0
    1. younes-zi
       
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Web;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Data.OleDb;

      using System.IO;
      using System.Web.UI.HtmlControls;
      using iTextSharp.text;
      using iTextSharp.text.pdf;
      using iTextSharp.text.html.simpleparser;

      namespace seanse7
      {
      public partial class candidat_par_salle : System.Web.UI.Page
      {
      protected void Page_Load(object sender, EventArgs e)
      {


      }

      protected void Button1_Click(object sender, EventArgs e)
      {
      string file = "~/Fichier" + Session["sb"].ToString() + "_" + Session["salle"].ToString() + ".pdf";

      GridView1.AllowPaging = false;
      GridView1.DataBind();
      Document Docpdf = new Document();
      PdfWriter write = PdfWriter.GetInstance(Docpdf, new FileStream(Server.MapPath(file), FileMode.OpenOrCreate));
      Docpdf.Open();

      BaseFont BfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
      Font titleFont = new Font(BfTimes, 13f, Font.BOLD, BaseColor.BLACK);
      Font headerFont = new Font(BfTimes, 10f, Font.BOLD, BaseColor.BLACK);
      Font cellFont = new Font(BfTimes, 10f, Font.NORMAL, BaseColor.BLACK);



      Docpdf.Add(new Paragraph("Serie :" +Session["sb"].ToString() +System.Environment.NewLine +"Salle :" + Session["salle"].ToString() +System.Environment.NewLine + "Liste de candidats ",titleFont));

      int nbre_colonnes = GridView1.Columns.Count;
      int nbre_lignes = GridView1.Rows.Count;

      PdfPTable table = new PdfPTable(nbre_colonnes);
      table.SpacingBefore = 20; table.SpacingAfter = 20; table.WidthPercentage = 50;

      for(int j = 0 ; j < nbre_colonnes;j++)
      table.AddCell(new Phrase(GridView1.Columns[j].HeaderText, headerFont));

      for(int i = 0 ; i < nbre_lignes; i++)
      {
      for(int k = 0 ; k < nbre_colonnes ; k++)
      {
      string Valeur = GridView1.Rows[i].Cells[k].Text;
      if (Valeur != null)
      {
      table.AddCell(new Phrase(Valeur, cellFont));
      }

      }

      }

      Docpdf.Add(table);
      Docpdf.Close();
      GridView1.AllowPaging = true;
      GridView1.DataBind();
      }
      }
      }


      voila tout le code de la partie export vers un fichier pdf !!
      j'ai pas compris (blocs if) !!?
      et merci pour m'avoir répondu
      0
      1. ElementW Messages postés 5690 Statut Contributeur 1 293 > younes-zi
         
        Ta classe est une classe partielle; il manque du code.
        Et quand je dit "blocs de if", je voulais dire que de manière similaire à ton
        if (Valeur != null) 
        , tu dois faire les vérifs nécessaires pour éviter qu'une des valeurs que tu utilises pour
        file
        ne valent
        null
        .
        0