2014-01-17 5 views
-1

Есть проблема с кодом я не совсем понимаю, когда я бегу я получаю сообщение об ошибке: «Индекс находился вне границ массива»Индекс находился вне границ массива VB.NET

Public Function DataSourceConnection_Report() 
    If Split(tmpStr, ":")(4) = "1" Then 
     mReport.DataSourceConnections(0).SetConnection(Split(tmpStr, ":")(1), "pharmacy", Split(tmpStr, ":")(2), Split(tmpStr, ":")(3)) 
    Else 
     mReport.DataSourceConnections(0).SetConnection(Split(tmpStr, ":")(1), "pharmacy", True) 
    End If 
    Return 0 
End Function 
+0

Индексы основаны нуль, вы знаете, что? –

+0

uum, no ,, so, как вы его исправите –

+0

Возможно, вам нужен 4-й элемент в массиве, тогда вам нужно: 'Split (tmpStr,": ") (3) =" 1 "' –

ответ

0

Индексы основаны на нулевом значении, знаете ли вы это?

uum,no,,so how do you correct it

Может быть, вы хотите, 4-й элемент в массиве, то вам необходимо: Split(tmpStr, ":")(3) = "1":

Полный код:

Public Function DataSourceConnection_Report() As Int32 
    Dim split As String() = Microsoft.VisualBasic.Split(tmpStr, ":") ' use a variable, then you need to evaluate it only once ' 
    If split.Length >= 4 Then 
     If split(3) = "1" Then 
      mReport.DataSourceConnections(0).SetConnection(split(1), "pharmacy", split(2), split(3)) 
     Else 
      mReport.DataSourceConnections(0).SetConnection(split(1), "pharmacy", True) 
     End If 
    End If 
    Return 0 
End Function 
+0

Я получаю эту ошибку: Не удалось загрузить файл или сборку: /// C: \ Program Files \ SAP BusinessObjects \ Crystal Reports для .NET Framework 4.0 \ Common \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86 \ dotnet1 \ crdb_adoplus.dll 'или одна из его зависимостей , Система не может найти указанный файл. –

+0

@ J.Nandi: Я не знаю, что DLL. Однако эта ошибка не связана с этим вопросом. –

+0

Хорошо, позвольте мне попытаться понять это, спасибо в любом случае :) –

Смежные вопросы