【问题标题】:VB.NET error: Index was outside the bounds of the arrayVB.NET 错误:索引超出了数组的范围
【发布时间】:2010-09-18 11:39:50
【问题描述】:

每当我单击数据网格时就会出现此错误。

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

比如我在datagrid中选择data1有4条记录,然后我点击row index no 1,没问题,会显示出来,但是当我在combobox中再次选择其他数据时,比如Data 2只有一条记录,然后我将再次单击数据网格。

这是弹出错误的时间。

请查看我如何填充数据网格的代码:

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

代码中是否遗漏了什么?

【问题讨论】:

    标签: vb.net arrays


    【解决方案1】:

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

    数组边界之外的索引通常是由于您试图查看不再存在的行而引起的。您是否在任何地方都有指向数据网格中当前行的指针?

    数据网格点击事件中发生了什么?

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-09
        • 2013-12-13
        相关资源
        最近更新 更多