VB.NET错误:索引超出了数组的范围

时间:2008-10-22 06:08:25

标签: vb.net arrays

每次单击datagrid时都会出现此错误。

每次在组合框中选择数据时,程序都会填充数据网格。

例如,我选择data1在datagrid中有四条记录,然后我点击行索引号1.没问题,它会显示,但是当我在组合框中再次选择另一个数据时,例如,数据2只有一条记录然后我将再次点击datagrid。

这是错误弹出的时间。

请参阅有关如何填充数据网格的代码:

Sub FillDtgPir(ByVal qry As String)
    Try
        If SQLConn1.State = ConnectionState.Closed Then SQLConn1.Open()
        Dim adap As New SqlDataAdapter(qry, SQLConn1)
        Me.DtsLineReq1.PRRMS_PIR.Clear()
        adap.Fill(Me.DtsLineReq1, "PRRMS_PIR")
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

代码中是否遗漏了什么?

2 个答案:

答案 0 :(得分:1)

如果所选行索引大于新数据中的最大索引(行数减1),那么在进行填充之前根据需要减小行索引?或者检查异常的原因并减少行索引而不是显示错误消息?

答案 1 :(得分:0)

重新填充数据网格时 - 请确保重置所选行(这是我期望Clear()执行的操作)。

数组范围之外的索引通常是由于您尝试查看不再存在的行而导致的。你有一个指向数据网格中当前行的指针吗?

datagrid点击事件中是否发生了任何事情?