IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

System.NullReferenceException sur un string oO


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Par défaut System.NullReferenceException sur un string oO
    Bonjour,

    Je fais une requête dont les résultats sont stocké dans un DataTable : (la méthode SelectAppQuery est stable et n'a aucun bug)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    DataTable dta = ***WebTools.SelectAppQuery("SELECT CategorieDoc.nom, CategorieDoc.id_categorie FROM CategorieDoc WHERE CategorieDoc.id_regroupement = @idregroupement", pac);
     
    for (int c = 0; c < dta.Rows.Count; c++)
    {
    //...
    string categorie  = dta.Rows[c]["nom"].ToString();
     
    myPage.addText("Catégorie : "+categorie, 20, myPage.height - 220, myDoc.getFontReference("Helvetica"), 10); //erreur ici
    //...
    }
    Mon soucis c'est que j'obtiens une erreur incompréhensible :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.

    Erreur source:

    Ligne 478 :
    Ligne 479 : myPage.addText("Catégorie : "+categorie, 20, myPage.height - 220, myDoc.getFontReference("Helvetica"), 10);
    Ligne 480 : currentY -= 20;


    Fichier source : ******.aspx.cs Ligne : 479

    Trace de la pile:

    [NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.]
    sharpPDF.Fonts.pdfPredefinedFont.getWordWidth(String strWord, Int32 fontSize) +535
    sharpPDF.Elements.textElement..ctor(String newContent, Int32 newFontSize, pdfAbstractFont newFontType, Int32 newCoordX, Int32 newCoordY, pdfColor newStrokeColor) +298
    sharpPDF.pdfBasePage.addText(String newText, Int32 X, Int32 Y, pdfAbstractFont fontReference, Int32 fontSize, pdfColor fontColor) +147
    sharpPDF.pdfBasePage.addText(String newText, Int32 X, Int32 Y, pdfAbstractFont fontReference, Int32 fontSize) +108
    ***** in ******.aspx.cs:479
    *******_Click(Object sender, EventArgs e) in ******.aspx.cs:957
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
    Je ne comprend pas pourquoi il me met cette erreur, j'ai testé la requête, elle est correct ca me retourne bien un nom de categorie etc...

    Et lorsque je met par exemple :
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    categorie = dta.Rows[c]["id_categorie"].ToString();
    Là ça fonctionne oO

    (myPage.addText est une méthode du framework SharpPDf donc non buger, de plus ça fonctionne lorque je met du texte en dur dans mon string.)

    Avez vous une idée afin de résoudre mon problème ?

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Peut etre que
    dta.Rows[c]["nom"] est DBNull

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Par défaut
    Quand je test la requête indépendamment de l'appli. dans SQL Server managment ça me retourne bien des noms de catégorie, ce n'est pas DBNull.

    (de plus la BDD de test possède uniquement 4 lignes et aucune des cellules n'est vide)

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Passe en debug et regarde la valeur à ce moment là.
    Ca sert pas à gd chose de jouer le requête dans SQL Server directement

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Par défaut
    Le problème c'est que c'est pas moi qui ai codé l'appli. et il n'y a pas de .sln, je bosse directement sur le serveur de test donc je ne peux pas déboguer avec visual studio.

    Par contre il est pas possible d'écrire dans la trace (là où l'erreur s'afficher) afin d'afficher justement ma variable dedans ?

    Edit :
    J'ai affiché la variable dans les log et j'ai bien quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    2010-09-16 14:12:42,951 [3364] INFO  *****_aspx - genererMultiFact - 479 - categorie :::: moins de 200

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Par défaut
    Bon, j'ai vu ce qui faisait planté... le fait qu'une catégorie possède "²" fait planter SharpPDF oO

    Si quelqu'un a une solution je suis preneur.

Discussions similaires

  1. Pb sur les String entre navigateurs
    Par chpog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/09/2005, 10h59
  2. [Debutant] Pb sur les string
    Par chpog dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 16/09/2005, 12h03
  3. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52
  4. [débutant]travailler sur contenu string
    Par Serge76 dans le forum SL & STL
    Réponses: 13
    Dernier message: 06/11/2004, 16h43
  5. [Système] Droits sur un fichier
    Par maxvador dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 16/07/2004, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo