Вопрос

Я получаю это сообщение об ошибке случайным образом:

Индекс находился вне границ массива.

И это указывает на эту строку:

Dim placename As String = RichTextBox1.Lines(0)
Это было полезно?

Решение

Это означает, что ваш RichTextBox1 не имеет в нем строк. Замените это с:

Dim placename As String
If RichTextBox1.Lines.Count() > 0 Then
    placename=RichTextBox1.Lines(0)
Else
    placename = String.Empty
End if

Больше информации:
Представьте себе массив как улицу, и каждый элемент в массиве - это дом. Если на улице 30 домов, и я хочу найти дом № 20, я начинаю в начале (1) и поднимаюсь, пока не достигнет 20. С массивом, 0 - где вы начнете вместо 1, так что массив С 30 элементами содержит индексы 0-29. Теперь вернемся к улице-аналогии. Представьте, что я иду на улицу и попроси о доме № 31. Этот дом не существует, потому что есть только 30 домов. Это эффективно то, что программа говорит вам. Это говорит: «Там недостаточно элементов в массиве для меня, чтобы добраться до того, что вы просили». Таким образом, вы попросили элемент 0 в массиве строк, эффективно говоря, «дайте мне первую строку». Теперь, если в текстовом поле 0 строки 0, то первая строка не существует, и вы получите эту ошибку.

Другие советы

Индекс находился вне границ массива

Это сообщение об ошибке обычно означает, что вы призвал к объекту в массиве в месте, которое является NULL, или нет ничего там. Это происходит в тех случаях, как следующее;

myArray = [0,1,2,3];

trace(myArray[6]);

Поскольку в массиве ничего нет в индексе 6, он находится за пределами границ. Если массив пуст во время вызова, он даст ошибку для объекта по индексу 0.

Я не могу сказать больше, чем на сумму кода, который вы разместили. Попробуйте проверить, чтобы убедиться, что массив был заполнен до этой строки.

Возможно, ваш SQL Reader не получил никаких рядов, связанных с указанным вами индексом. Это было так для меня; Я получал столбцы, которые не были в базе данных.

Вы можете изменить свой код следующим образом:

Dim placename As String
If RichTextBox1.Lines.Count > 0 Then placename = RichTextBox1.Lines(0)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top