datagridview中的数据没有出现,datagrid中的预定义列现在将单元格映射到数据表值

时间:2016-04-21 10:57:20

标签: vb.net datagridview datatable

在datatable中有4行即将到来,我必须使用for循环拉入datagridview,所以发生的事情只是最后一行来自数据网格中的4个数据网格看看

数据表“DTItems”中有4行

If DTItems.Rows.Count > 0 Then
For i As Integer = 0 To DTItems.Rows.Count - 1
If DataGridViewItems.Rows.Count <= i Then DataGridViewItems.Rows.Add()
DataGridViewItems.Rows(i).Cells(0).Value = DTItems.Rows(i).Item(1)
DataGridViewItems.Rows(i).Cells(1).Value = DTItems.Rows(i).Item(2)
DataGridViewItems.Rows(i).Cells(2).Value = DTItems.Rows(i).Item(3)
DataGridViewItems.Rows(i).Cells(3).Value = DTItems.Rows(i).Item(4)
DataGridViewItems.Rows(i).Cells(4).Value = DTItems.Rows(i).Item(5)
DataGridViewItems.Rows(i).Cells(5).Value = DTItems.Rows(i).Item(6)
DataGridViewItems.Rows(i).Cells(6).Value = DTItems.Rows(i).Item(7)
DataGridViewItems.Rows(i).Cells(7).Value = DTItems.Rows(i).Item(8)
DataGridViewItems.Rows(i).Cells(8).Value = DTItems.Rows(i).Item(9)
DataGridViewItems.Rows(i).Cells(9).Value = DTItems.Rows(i).Item(10)
DataGridViewItems.Rows(i).Cells(10).Value = DTItems.Rows(i).Item(11)
DataGridViewItems.Rows(i).Cells(11).Value = DTItems.Rows(i).Item(12)
DataGridViewItems.Rows(i).Cells(12).Value = DTItems.Rows(i).Item(13)
DataGridViewItems.Rows(i).Cells(13).Value = DTItems.Rows(i).Item(14)
DataGridViewItems.Rows(i).Cells(14).Value = DTItems.Rows(i).Item(0)
DataGridViewItems.Rows(i).Cells(15).Value = 0
Next
End If

我在数据网格视图中获得了3个空白行,第4个即将到来。

2 个答案:

答案 0 :(得分:0)

您的问题在于:

If DataGridViewItems.Rows.Count <= i Then DataGridViewItems.Rows.Add()

<=表示小于或等于,因此您只在i到达DataGridViewItems.Rows.Count时添加一行

尝试将其更改为:

If DataGridViewItems.Rows.Count >= i Then DataGridViewItems.Rows.Add()

此外,无论是否添加行,您都在尝试添加数据,更新数据可能也应该位于If DataGridViewItems.Rows.Count >= i Then内,或者在i大于If DTItems.Rows.Count > 0 Then For i As Integer = 0 To DTItems.Rows.Count - 1 If DataGridViewItems.Rows.Count > i Then Exit For DataGridViewItems.Rows.Add() DataGridViewItems.Rows(i).Cells(0).Value = DTItems.Rows(i).Item(1) DataGridViewItems.Rows(i).Cells(1).Value = DTItems.Rows(i).Item(2) DataGridViewItems.Rows(i).Cells(2).Value = DTItems.Rows(i).Item(3) DataGridViewItems.Rows(i).Cells(3).Value = DTItems.Rows(i).Item(4) DataGridViewItems.Rows(i).Cells(4).Value = DTItems.Rows(i).Item(5) DataGridViewItems.Rows(i).Cells(5).Value = DTItems.Rows(i).Item(6) DataGridViewItems.Rows(i).Cells(6).Value = DTItems.Rows(i).Item(7) DataGridViewItems.Rows(i).Cells(7).Value = DTItems.Rows(i).Item(8) DataGridViewItems.Rows(i).Cells(8).Value = DTItems.Rows(i).Item(9) DataGridViewItems.Rows(i).Cells(9).Value = DTItems.Rows(i).Item(10) DataGridViewItems.Rows(i).Cells(10).Value = DTItems.Rows(i).Item(11) DataGridViewItems.Rows(i).Cells(11).Value = DTItems.Rows(i).Item(12) DataGridViewItems.Rows(i).Cells(12).Value = DTItems.Rows(i).Item(13) DataGridViewItems.Rows(i).Cells(13).Value = DTItems.Rows(i).Item(14) DataGridViewItems.Rows(i).Cells(14).Value = DTItems.Rows(i).Item(0) DataGridViewItems.Rows(i).Cells(15).Value = 0 Next End If 时简单地结束循环行数。

如:

{{1}}

答案 1 :(得分:0)

问题已解决,实际上,允许用户添加行的datagridview的默认属性设置为true,因此我将其更改为false并开始工作。