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

Fermé
younes-zi - 27 mai 2015 à 20:55
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 28 mai 2015 à 21:21
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

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
27 mai 2015 à 20:59
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
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
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225 > younes-zi
28 mai 2015 à 21:21
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