2012-04-15 11 views
1

"IndexOutOfRangeException unhandled war" daraufNachname "IndexOutOfRangeException wurde nicht behandelt"

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 

Der Wert von "Vollständiger Name" hat nur einen Namen. Es sollte also nur NAMES [0] in "FirstName" schreiben und auf "LastName" leer lassen.

ABER aber aber aber knapp und es zeigte sich, dass die letzte Zeile des Codes war

Und auch „IndexOutOfRangeException unhandled war“, es funktioniert nur gut, wenn der Wert von „Vollständiger Name“ an zwei Namen hat .

Wie kann ich es so machen, dass es nicht aufhören würde, auch wenn es keine NAMEN [1] im Wert von "Fullname?"

Was ich versuche, ist die Übertragung des Werts von "Fullname" durch Aufteilen in den "FirstName" und den "LastName". Aber manchmal enthält der Wert des "Fullname" keinen Nachnamen ... Und dann stoppt mein Programm und sagt "IndexOutOfRangeException wurde unbehandelt"

Bitte helfen Sie mir! Wie kann ich das machen, habe ich eine Menge IF-Anweisungen geschrieben, um mit dieser Art von Situation umzugehen, wenn die Variable NAMES [1] nicht im "Fullname" existiert und trotzdem "" IndexOutOfRangeException unbehandelt ist "

Antwort

3

einfach überprüfen, ob Ihre Split-Erz oder zwei Werte ergab:

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

natürlich setzt dies voraus, dass Sie keine anderen Probleme wie haben:

  • der Benutzer eingegeben hat keine Eingaben
  • die Benutzer hat mehr als zwei Namen eingegeben
  • der Benutzer eingegeben einige unzulässige Zeichen

usw.

Sie sollten Ihre Eingabe Überprüfung genauer zu fangen andere seltsame Verhalten planen.

+0

Ich verbrachte 4 Stunden damit, dies gestern herauszufinden ... Und was du mir gerade gegeben hast, hat wirklich gut funktioniert! Wenn ich in der Zeit zurückgehen kann und herausgefunden habe, dass ich das selbst nicht herausfinden kann, möchte ich diese Frage im Moment stellen, wo ich Hilfe brauche. Vielen vielen Dank! – Barry

+0

@Barry: Ich bin froh zu helfen. Bitte akzeptieren Sie die Antwort, wenn es Ihr Problem gelöst hat. :) – Tudor