2014-04-08 3 views
-5

System.IndexOutOfRangeException : 인덱스가 배열 경계를 벗어났습니다. WinServiceProject.WinService.OnStart (문자열 []에 인수) C에에서 : \ 문서 및 설정 \ 관리자 \ 바탕 화면 \ WinServiceProject WinService.cs \ : 라인 515오류 : System.IndexOutOfRangeException : 인덱스가 배열 경계 외부에 있습니다.

{ string[] stringArray = row["Version"].ToString().Split('.');

 Line 515 -----> switch (stringArray[0] + "." + stringArray[1] + ".") 
         { 
          case "11.0.": 
           sqlServerVersion = "SQL Server 2012"; 
           file.WriteLine("SQL Server 2012"); 
           break; 

          case "10.50.": 
           sqlServerVersion = "SQL Server 2008 R2"; 
           file.WriteLine("SQL Server 2008 R2"); 
           break; 

          case "10.0.": 
           sqlServerVersion = "SQL Server 2008"; 
           file.WriteLine("SQL Server 2008"); 
           break; 

          case "9.00.": 
           sqlServerVersion = "SQL Server 2005"; 
           file.WriteLine("SQL Server 2005"); 
           break; 
         } 
        }` 

누군가가 도움을 줄 수있는 경우 나 제발 ... 고마워. stringArray 미만이 elements.That가 포함 된

+0

return'row [ "Version"]. ToString()'은 무엇입니까? –

+0

은 SQL Server 내부 버전을 반환합니다. 그 이유는이 사례를 11.0.2100.60과 비슷한 것으로 변경 한 이유입니다. –

+1

디버거를 사용하십시오. – tnw

답변

0

가 문제가, 방금 말에 dot을 추가하고 싶은 경우는, switch statement.BTW 전에 두 개 이상의 요소가 포함되어 있는지 확인해야합니다 당신은하지 않습니다

string str = row["Version"].ToString(); 
str = str.Insert(str.Length, "."); 

switch(str) 
{ 
    ... 
} 

또는 단순히 문자열 연결 사용 : : 그냥 사용 String.SplitInsert 방법이 필요 string str = row["Version"].ToString() + "."을;

+0

두 번째 옵션으로 다른 시도를 시도합니다. 오류가 표시됩니다 ... 감사합니다. 답변을 표시하는 데 15 분을 기다려야합니다. –

+0

감사합니다.이 단계는 다른 단계를 계속 진행하는 데 도움이됩니다 ... 멋진 하루 !! –

관련 문제