2009-05-14 4 views
0

J'ai un formulaire Web ASP.NET qui, en plus des autres contrôles, a une zone de texte pour entrer une valeur, une zone de texte pour afficher les valeurs, une liste déroulante et une recherche bouton. J'utilise le code suivant pour afficher les résultats de recherche:Erreur NullReferenceException dans ASP.NET avec C# - Essayer de gérer l'erreur

if (TextBox3.text == DropDownList3.Items.FindByText(TextBox3.Text).Value) 
{ 
    etc... 
} 

Le DDL3 obtient ses valeurs à partir d'un DataTable, et la valeur est entrée en TextBox3 doit correspondre à l'une des valeurs de DDL3 à afficher les résultats de recherche après le bouton de recherche est cliqué. L'erreur NullReferenceException se produit lorsque la valeur TextBox3 est nulle ou ne correspond à aucune valeur dans DDL3. C'est raisonnable. Cependant, j'ai passé quelques heures à essayer de gérer cette erreur et je n'arrive pas à comprendre comment s'y prendre. J'ai essayé d'ajouter des instructions "If" supplémentaires, telles que "si TextBox3 == null, etc ...; cependant, en vain. Comment devrais-je changer l'instruction if ci-dessus pour compenser une valeur nulle ou une valeur incorrecte?

Merci,

DFM

Répondre

2

Essayez d'utiliser un try ... catch à cette exception:

try { 
    TextBox3.text = DropDownList3.Items.FindByText(TextBox3.Text).Value 
} catch (NullReferenceException ex) { 
    TextBox3.text = "(none)"; 
} 
+0

Merci pour la réponse - J'ai essayé la solution ci-dessus; cependant, j'obtiens une erreur due au "e" après le NullReferenceException. Je ne peux pas déclarer "e" car il est utilisé pour mes EventArgs. –

+0

Bien que j'obtiens l'erreur, votre solution fonctionne; Je vous remercie. Je vais devoir comprendre l'autre erreur; Cependant, l'événement se déclenche correctement. –

+0

juste le changer à ex –

1

vous devriez vérifier si l'élément existe dans la liste avant de vérifier sa valeur

if (DropDownList3.Items.FindByText(TextBox3.Text) != null) 
{ 
    // ... 
} 
+0

Merci pour la réponse - l'élément existe dans le DDL, avant l'instruction if. J'ai essayé votre exemple avant de poster cette question, et le code passerait le! = Et passerait à l'instruction if suivante, l'instruction en question, qui me donnerait alors l'erreur. –

Questions connexes