0
我正在读取从excel电子表格到datagridview的整数列,它只是不工作。我试过两种方法,一种使用循环,另一种使用OleDb。在麻烦的行之前的代码使用OleDb来完美地填充另一个与excel中的一列的DGV,所以我不知道为什么它第二次不起作用。下面是我的了:datagridview错误索引超出范围vb.net
方法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将要求您在尝试解决它们之前添加空行。您还必须手动添加目标列。 – rheitzman
谢谢@rheitzman,我已经完成了,并编辑了我的帖子。在DGV2中,当我执行时创建了一个单元格,但现在我在同一行(方法2中的倒数第二行)上得到了空引用异常。我觉得我们正处在正确的轨道上...... –
这些更改没有使其成为帖子 - 您需要添加代码以将列添加到DGV,并有足够的行来容纳您正在使用的编址类型。或者添加一列并使用.Rows.Add(