2012-11-01 5 views
0

내가 SQLSERVER 데이터베이스에 excelsheet를 수입하고 읽는 동안 배열의 범위를 벗어난 그러나 세 개의 열 Excel에서있다 :지수는 excelsheet

id|data|passport 

내가 모든 여권은 알파벳 I로 시작 있는지 확인하려면

if (a[0]>= 'A' && a[0] <= 'Z' && a[0] !='0') 

오류 :

Index was outside the bounds of the array.

01,239,301,314,282,134,942에서 오류를 얻고있다
+0

사용 중단 점처럼 조건을 수정 배열의 길이를 테스트하고 인덱스 액세스를 시작하는 것이 좋습니다 얻은 그 dt7.Rows [I1 ] [ "passport"] 값 "k526562"object {string} – Arbaaz

답변

0

왜 그냥이

If(!String.IsNullOrEmpty(a)){ 
    If(Char.IsLetter(a[0])){ 
      Label12.Text = "CAPITAL"; 
      break; 
    } 
} 
+0

그것은 일했습니다! 감사 !! 하지만 대문자를 확인하려면 어떻게해야하는지 궁금 해서요? – Arbaaz

+0

대문자를 확인하려면'If (Char.IsLetter (a [0]) && a [0] == a [0] .ToUpper())'와 같은 것을 사용할 수 있습니다. –

1

a비어있는 배열을 나타냅니다. 따라서 색인 0에 요소가 없습니다. 첫 번째 요소에 액세스하기 전에 배열이 비어 있지 않은지 확인해야합니다.

+0

breakpoint를 사용하고 있습니다. dt7.Rows [i1] [ "passport"] 값이 "k526562"object {string} – Arbaaz

+0

plz 확인 내 편집 – Arbaaz

1

단어 및 엑셀 범위의 개체가 1 기반 배열이었고 인덱스 0에 액세스 할 때 범위를 벗어나는 예외를 throw하는 경우가있었습니다. 나는 이것이 아직도 사실이라고 생각한다.

@ anthony-grist가 말했듯이 배열이 비어 있으므로 첫 번째 항목이 배열 범위 밖에있을 수 있습니다.

나는 당신이 1

+0

plz 질문에 내 eidt를 확인하십시오 – Arbaaz