dataGridView错误索引范围为vb.net



我正在读取从excel电子表格中的整数列到datagridview中,但它只是不起作用。我尝试了两种方法,一种使用循环的方法,而另一种使用OLEDB。在麻烦的线路之前,代码使用OLEDB完美地用Excel的一列填充另一列DGV,因此我不知道为什么它第二次不起作用。这是我得到的:

方法1 ---

 Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & FormFile & """;Extended Properties=""Excel 12.0;HDR=YES;""")
        'Fill dataviewgrid1 with element symbols, string' THIS WORKS PERFECTLY!!
        da = New OleDbDataAdapter("select * from [" & sheetname & "$A13:A" & lrow & "]", cn)
        ds = New System.Data.DataSet
        da.Fill(ds)
        DataGridView1.DataSource = ds.Tables(0)
        'Fill dataviewgrid2 with compositions, string' THIS DOESN"T WORK, AND I DONT GET ANY ERROR MESSAGES. NOTHING HAPPENS.
        da2 = New OleDbDataAdapter("select * from [" & sheetname & "$B13:B" & lrow & "]", cn)
        ds2 = New System.Data.DataSet
        da2.Fill(ds2)
        DataGridView2.DataSource = ds2.Table

要重申上述,填充DGV1是成功的。填充DGV 2是不成功的,没有弹出的错误或其他任何错误。这是我尝试的另一种方式:

方法2:

DataGridView.ColumnCount = 1
For xrow As Integer = 13 To lrow - 1
            DataGridView.Rows.Add
            DataGridView2.Item(0, xrow - 13).Value = xlWsheet2.Cells(xrow, 2).Value
        Next

这使我遇到了错误"索引超出范围"。

为什么我不能让它工作?

我相信我在上面找到了纠正方法2的答案。我没有定义xlwsheet2。

我仍然不确定为什么方法1不起作用。

最新更新