尝试将datagridview从一个表单复制到另一个表单

时间:2013-05-30 20:31:04

标签: vb.net loops datagridview

我知道我的头衔有点奇怪。让我解释。我正在尝试“合并”两个数据库,一个在本地,一个在另一个设施,希望避免我们的管理组必须通过单独的表单复制条目。我有一个连接到异地数据库的Web服务的源,我可以输入数据。我想要做的是通过添加我们自己的数据库并将我们的数据复制到他们的数据来扩展该源。希望这是有道理的。

无论如何,

因此,本地和非现场表单都附加了datagridviews。我现在可以将第一行的内容复制到其表单中以便输入,但是当它尝试转到第二行时我遇到错误。这是我的代码:

  Dim i As Integer
        For i = 0 To VRMAdDataGridView.Rows.Count - 1
            'For Each row As DataGridViewRow In VRMAdDataGridView.Rows

            'myrow = VRMAdDataGridView.CurrentRow.Index
            frmcall.dgvRMAItems.Rows(i).Cells("cItemID").Value = Me.VRMAdDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn5").Value
            frmcall.dgvRMAItems.Rows(i).Cells("cExpectedSerialNumber").Value = Me.VRMAdDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn2").Value
            frmcall.dgvRMAItems.Rows(i).Cells("cNotes").Value = Me.VRMAdDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Value

            'Format Type codes from FW to match Utica
            Select Case Me.VRMAdDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn6").Value
                Case "Repair"
                    frmcall.dgvRMAItems.Rows(i).Cells("cRequestedAction").Value = "Repair"
                Case "RTS"
                    frmcall.dgvRMAItems.Rows(i).Cells("cRequestedAction").Value = "Rtn/Stock"
                Case "Repair !!RUSH!!"
                    frmcall.dgvRMAItems.Rows(i).Cells("cRequestedAction").Value = "Rush Repair"

            End Select


            ' myrowval = row.Cells("DataGridViewTextBoxColumn5").Value
            ' MsgBox(myrowval, MsgBoxStyle.Information, "Prod_Code")
            'Do Something
        Next

当我尝试运行代码时,收到以下错误:

{“索引超出范围。必须是非负数且小于集合的大小。 参数名称:index“}

1 个答案:

答案 0 :(得分:1)

您应该操作底层数据源,而不是UI元素(在本例中为DataGridViews)。例如,您的DataSource是DataTable。然后只需使用Clone方法获取副本。然后设置其他DataGridView的DataSource。如果您需要的不仅仅是副本,那么使用一系列DataRow对象肯定会更简单。