2012-04-15 4 views
1

« IndexOutOfRangeException était non gérée »Nom « IndexOutOfRangeException était non gérée »

string ebtocosname; 
ebtocosname = webBrowser2.Document.GetElementById("Fullname").GetAttribute("value"); 
var NAMES = ebtocosname.Split(); 

webBrowser1.Document.GetElementById("FirstName").SetAttribute("value", NAMES[0]); 

webBrowser1.Document.GetElementById("LastName").SetAttribute("value", NAMES[1]);  // This line here shows that IndexOutofRangeException was unhandled 

La valeur de « Nom complet » n'a qu'un seul nom. Donc, il devrait seulement écrire NAMES [0] dans le "Prénom" et laisser vide sur le "Nom".

MAIS MAIS MAIS mais il est arrêté et il a montré que la dernière ligne du code était « IndexOutOfRangeException était non gérée »

Et aussi, il ne fonctionne bien que si la valeur de « Nom complet » a deux noms sur elle .

Comment puis-je le faire fonctionner de telle sorte qu'il ne s'arrêterait pas même s'il n'y a pas de NOMS [1] dans la valeur de "Nom complet?" Ce que j'essaie de faire est de transférer la valeur de "Nom complet" en le divisant en "Prénom" et "Nom". Mais parfois la valeur du "Fullname" ne contient pas un nom de famille ... Et puis mon programme s'arrête et dit "IndexOutOfRangeException was unwelled"

Aidez-moi s'il vous plaît! comment puis-je faire ce travail, j'ai écrit beaucoup de IF Statements pour faire face à ce genre de situation lorsque la variable NAMES [1] n'existe pas dans le "Fullname", et pourtant elle montre "" IndexOutOfRangeException n'a pas été gérée "

Répondre

3

juste vérifier si votre scission a donné minerai ou deux valeurs:

if(NAMES.Length == 2) 
    webBrowser1.Document.GetElementById("LastName").SetAttribute("value", NAMES[1]);  

Bien sûr, cela suppose que vous avez pas d'autres problèmes tels que:

  • l'utilisateur n'a pas une entrée
  • la l'utilisateur a entré plus de deux noms
  • l'utilisateur a entré quelques caractères inacceptables

etc.

Vous devez planifier votre vérification d'entrée plus attentivement pour attraper tout autre comportement étrange.

+0

J'ai passé 4 heures à le comprendre hier ... Et ce que vous venez de me donner fonctionnait très bien! Si je peux revenir dans le temps et compris que je ne pouvais pas comprendre cela moi-même, je souhaite afficher cette question au moment où j'avais besoin d'aide. Merci beaucoup! – Barry

+0

@Barry: Content de vous aider. Veuillez accepter la réponse si elle a résolu votre problème. :) – Tudor

Questions connexes