Vb.net - 即使索引存在,数据表接收索引超出范围异常

时间:2017-05-19 20:51:08

标签: vb.net datatable

有时候,我的应用程序会抛出随机索引超出范围的异常,而且我有点迷失了原因..

这是一个截图: enter image description here

正如你所看到的那样,索引(thi3)在行数之下,所以我没有看到问题?

编辑:这是我声明数据表的列(在表单加载时发生)

InternalDataTable.Columns.Add("Domain")
InternalDataTable.Columns.Add("Anchor text")
InternalDataTable.Columns.Add("Status")
InternalDataTable.Columns.Add("E. Links")
InternalDataTable.Columns.Add("Thread #")
InternalDataTable.Columns.Add("Tjek", GetType(Boolean))

DataGridView1.DataSource = InternalDataTable

Edit2:我现在又收到一个错误,但是现在在图像中突出显示的行下方的行,所以问题确实是项目(x)

If InternalDataTable.Rows(thi3).Item(2) = "" Then

编辑3:再次出现错误,请参见此处的屏幕截图https://i.gyazo.com/a7cc582e4cbf33bea59a8efb9bb36497.png - (无法嵌入图片)我知道我应该发布代码,但是这张图片提供了一个视图,列和行&项目在索引范围内。

1 个答案:

答案 0 :(得分:0)

您的代码中的问题是您可能已插入多个rows,但您没有Columns

InternalDataTable.Rows(thi3).Item(0) = ""

.Item(0)可能导致索引超出范围异常。

另外,我建议你改变整个if到这个:

if thi3 < InternalDataTable.Rows.Count andalso InternalDataTable.Columns.Count > 2  andalso InternalDataTable.rows(Thi3).Item(0) <> "" then

由于访问Rowcount索引,因此注意将<=更改为<也会生成超出范围异常的索引。