2009-11-25 2 views
0

J'accède à la valeur From de chaque courrier à partir du fichier nsf. Comme :Obtention d'une valeur nulle pour NotesDocument pour Mail Élément: C#

NotesView sent = _NotesDatabase.GetView("($Sent)");     

if (sent != null) 

{          

    NotesDocument docSent = sent.GetFirstDocument(); 

    if (docSent != null) 

    {      

     while (docSent != null) 

     { 

     String Subject = ((object[]) DocSent.GetItemValue("Subject"))[0] as String; 

     Message.Show(Subject); 

     docSent = sent.GetNextDocument(docSent);  

     }//while 

    } 


} 

Mais il y a quelques mails pour lesquels je reçois la valeur "null" (il contient SendTo, les valeurs Sujet de e.t.c: vu dans les notes de lotus).

Donc, je ne peux pas accéder à ce sujet. Pourquoi cela se passe-t-il? J'ai vérifié la valeur du formulaire il est "Mémo"

+0

S'il vous plaît indente votre exemple de code avec quatre espaces sur chaque ligne, il sera plus facile pour nous de lire. –

+0

Je suppose que dans le code ci-dessus vous vouliez dire "(objet []) docSent", et non "(objet [] DocSent") - (minuscule "D") - correct? –

Répondre

0

Si vous obtenez une valeur nulle à partir de GetItemValue, le champ n'est probablement pas sur le document. Vous pouvez vérifier cette condition en utilisant la méthode HasItem de la classe NotesDocument, comme dans:

if (docSent.hasItem("Subject")) { 
    ... 
} 
+0

J'ai essayé ce code. Mais comme docSent est null, nous ne pouvons pas effectuer d'opération dessus. Il montre l'exception "Object referece null". – Preeti

+0

Si docSent est null, cela signifie que vous avez atteint la fin de la vue. Si vous apportez des modifications à un document qui provoque la chute du document ou modifie sa position dans la vue, la méthode getNextDocument peut renvoyer une valeur nulle prématurément. Votre code ci-dessus ne semble pas le faire. –

Questions connexes