Vb.net 将两个不同的datagridview复制为一个datagridview

Vb.net 将两个不同的datagridview复制为一个datagridview,vb.net,Vb.net,我的初始代码: Private Sub Transfer_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView6.CellContentClick Dim i As Integer vTableTransfer = New DataTable vTableTransfer.Columns.Add("Name

我的初始代码:

Private Sub Transfer_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView6.CellContentClick

    Dim i As Integer
    vTableTransfer = New DataTable
    vTableTransfer.Columns.Add("Name", GetType(String))
    vTableTransfer.Columns.Add("Type", GetType(String))
    vTableTransfer.Columns.Add("Len", GetType(Double))
    vTableTransfer.Columns.Add("ID", GetType(Double))
    vTableTransfer.Columns.Add("OD", GetType(Double))

   Try
    For i = 0 To DataGridView6.Rows.Count - 3
        If DataGridView6.Rows(i).Cells("Transfer").Value = True Then
            vRow = vTableTransfer.NewRow
            vRow.Item(0) = DataGridView13.Rows(i).Cells(0).Value
            vRow.Item(1) = DataGridView6.Rows(i).Cells("Type").Value
            vRow.Item(2) = DataGridView6.Rows(i).Cells("Len").Value
            vRow.Item(3) = DataGridView13.Rows(i).Cells(2).Value
            If IsDBNull(vRow.Item(3)) Then DataGridView13.Rows(i).Cells(2).Value = 0
            If DataGridView13.Rows(i).Cells(2).Value = 0 Then DataGridView13.Rows(i).Cells(2).Value=DataGridView5.Columns.Item(1)
            vRow.Item(4) = DataGridView6.Rows(i).Cells("OD").Value
            If IsDBNull(vTableTransfer.Rows) Then Exit Sub
            vTableTransfer.Rows.Add(vRow)
        End If
    Next
    DataGridView12.DataSource = vTableTransfer


 Catch ex As Exception 
 End Try 
End sub
我有三个datagridview(dgv6&dgv13&dgv5),其中dgv13是从dgv5复制的,然后使用dgv6中的复选框列将数据复制为一个datagridview(dgv12),dgv6上有12行数据,dgv13中有6行数据,dgv13上的数据为空后程序运行良好(计数步骤-7),然后程序被DBnull异常停止捕获。我的尝试是保留dgv12上的填充数据,而不是dgv13中的event no row data(事件无行数据),该行数据在停止的位置为dbnull,然后从dgv13复制上一个单元格,以完成数据到dgv12的传输


我尝试过使用dbnull并输入一些代码来继续在dgv12上填充数据,但似乎不起作用,是否可以这样做或其他方法请建议…非常感谢…

我想我发现了一些棘手的问题,可以很好地避免被dbnull捕获,只需继续在dgv13上写入一些值,同时选中按钮_单击dgv6上的选中按钮,以便dgv13继续在行上添加值,而不是在dgv12上添加值

For i = 0 To DataGridView6.Rows.Count - 3
            If DataGridView6.Rows(i).Cells("Transfer").Value = True Then
                vRow = vTableLink.NewRow
                vRow.Item(0) = ("OH").ToString
                vRow.Item(1) = ("0").ToString
                vRow.Item(2) = ("0").ToString
                If IsDBNull(vTableLink.Rows) Then Exit Sub
                vTableLink.Rows.Add(vRow)
            End If

我想我发现了一些棘手的问题,为了避免被dbnull捕获,只需继续在dgv13上写入一些值,同时在dgv6上单击checkbutton_,以便dgv13继续在行上添加值,而不是在dgv12上添加值

For i = 0 To DataGridView6.Rows.Count - 3
            If DataGridView6.Rows(i).Cells("Transfer").Value = True Then
                vRow = vTableLink.NewRow
                vRow.Item(0) = ("OH").ToString
                vRow.Item(1) = ("0").ToString
                vRow.Item(2) = ("0").ToString
                If IsDBNull(vTableLink.Rows) Then Exit Sub
                vTableLink.Rows.Add(vRow)
            End If