2012-04-15 4 views
1

는 "전체 이름"의 값은 거기에 하나의 이름이

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 

"IndexOutOfRangeException이 처리되지 않은이었다" "IndexOutOfRangeException는 처리되지 않은했다". 따라서 "성"에 NAMES [0]만을 쓰고 "성"에는 공백으로 남겨 두어야합니다.

하지만하지만하지만하지만 중단과 코드의 맨 마지막 줄

"IndexOutOfRangeException이 처리되지 않은했다"였다 또한, 그것은 단지 "전체 이름"의 값이 두 개의 이름을 가지고 잘 경우 작동 .

"Fullname"값에 NAMES [1]이 없더라도 멈추지 않게 작동시키는 방법은 무엇입니까?

"이름"과 "성"으로 분할하여 "Fullname"의 값을 전송하려고합니다. 하지만 때로는 "Fullname"의 값에는 성이 포함되지 않은 경우가 있습니다 ... 그리고 나서 프로그램이 멈추고 "IndexOutOfRangeException 처리되지 않았습니다"라고 말합니다.

도와주세요! 이 작업을 어떻게 수행 할 수 있습니까? 변수 이름 (NAME) [1]이 "Fullname"에 없지만 여전히 ""IndexOutOfRangeException이 처리되지 않았 음을 나타내면 이런 종류의 상황을 처리하기 위해 IF 문을 많이 작성했습니다.

당신의 분할 광석 또는 두 개의 값을 산출하는 경우

답변

3

그냥 확인 :

  • 사용자가 모든 입력을
  • 를 입력하지 않은 : 물론

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

    을, 이것은 당신이 같은 다른 문제가 없다고 가정 사용자가 두 개 이상의 이름을 입력했습니다.

  • 사용자
  • 은 일부 받아 들일 수없는 자에게

를 입력 등

당신은 어떤 다른 이상한 행동을 잡으려고 더 신중하게 입력 검증을 계획해야합니다.

+0

나는 이것을 어제 알아 내는데 4 시간을 보냈다 ... 그리고 나에게 준 것은 정말로 잘했다! 내가 시간을 거슬러 가서 나 자신을 알아낼 수 없다는 것을 알아 냈다면 도움을 필요로하는 순간이 질문을 올리시기 바랍니다. 정말 감사합니다! – Barry

+0

@ 배리 : 도와 줘서 기쁩니다. 문제가 해결되면 답변을 수락하십시오. :) – Tudor