指数是数组的范围

问题描述:

林随机收到这个错误讯息以外:指数是数组的范围

指数阵列的边界之外。

并将其指向这一行:

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行,那么第一行不存在,您将得到此错误。

指数数组

该错误消息的边界之外通常意味着你已经呼吁在那个为空,或者有什么也没有的位置数组中的对象。它发生在如下的情况下。

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

trace(myArray[6]); 

由于在索引6处数组中没有任何内容,所以它在边界之外。如果在调用时该阵列为空,它将给出索引为0的对象的错误。

我无法通过您发布的代码量来告诉任何更多。尝试检查以确保在调用该行之前已经填充了该数组。

也许你的SQL读取器没有得到任何与你给出的索引相关的行。对我来说就是这样。我收到了不在数据库中的列。

如下你可以改变你的代码:

Dim placename As String 
If RichTextBox1.Lines.Count > 0 Then placename = RichTextBox1.Lines(0) 

子ambil_kode_barang() 昏暗contoh的String = TRIM(tnama.Text)

Dim myc, myc2, myc3, myc4 As Char 
    Dim x, x2, x3 As Byte 
    Dim xdaerah, xdaerah2, xdaerah3, hasil As String 
    Dim s As Integer 

    myc = contoh.Chars(0)'zero this error can you help me.? 
    s = Len(contoh) - Len(Replace(contoh, " ", "")) 
    x = InStr(contoh, " ") 
    xdaerah = Microsoft.VisualBasic.Mid(tnama.Text, x + 1, Len(tnama.Text) - x) 
    myc2 = xdaerah.Chars(0) 

    x2 = InStr(Trim(xdaerah), " ") 
    xdaerah2 = Microsoft.VisualBasic.Mid(xdaerah, x2 + 1, Len(xdaerah) - x2) 
    myc3 = xdaerah2.Chars(0) 

    x3 = InStr(Trim(xdaerah2), " ") 
    xdaerah3 = Microsoft.VisualBasic.Mid(xdaerah2, x3 + 1, Len(xdaerah2) - x3) 
    myc4 = xdaerah3.Chars(0) 
    If s = 0 Then 
     hasil = Strings.Left(contoh, 2) 
    ElseIf s = 1 Then 
     hasil = myc + myc2 
    ElseIf s >= 2 Then 
     hasil = myc + myc2 
    Else 
     hasil = myc + myc2 
    End If 
    ambil_kode = Trim(hasil.ToUpper) 
End Sub 
+1

你应该多增加一些细节,而不仅仅是粘贴一些代码。您的解决方案如何以及为何解决问题? 并请格式化您的代码。 – hering 2017-08-28 13:51:28