2

我随机收到此错误消息:

指数数组的边界之外。

它指向这一行:

Dim placename As String = RichTextBox1.Lines(0)
4

3 回答 3

14

这意味着你的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 行,则第一行不存在,您将收到此错误。

于 2010-09-22T01:35:52.710 回答
1

指数数组的边界之外

该错误消息通常意味着您在数组中的某个位置调用了一个对象,该位置为空,或者那里没有任何内容。它发生在以下情况;

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

trace(myArray[6]);

由于索引 6 处的数组中没有任何内容,因此它超出了范围。如果在调用时数组为空,它将为索引 0 处的对象给出错误。

你发布的代码量我不能说更多。尝试检查以确保在调用该行之前已填充数组。

于 2010-09-22T01:36:31.790 回答
0

也许您的 SQL 阅读器没有获得与您提供的索引相关联的任何行。我就是这样。我得到了不在数据库中的列。

您可以按如下方式更改代码:

Dim placename As String
If RichTextBox1.Lines.Count > 0 Then placename = RichTextBox1.Lines(0)
于 2017-05-18T01:00:36.437 回答