0

我知道我的标题有点奇怪。让我解释。我正在尝试“合并”两个数据库,一个我们在本地安装,一个在另一个设施中,希望避免我们的管理员组不得不通过单独的表单重复输入。我有一个连接到异地数据库的网络服务源,我可以输入数据。我想做的是通过添加我们自己的数据库并将我们的数据复制到他们的数据库来扩展该来源。希望这是有道理的。

反正,

所以本地和异地表单都附有数据网格视图。我目前可以将第一行的内容复制到他们的表单中以供输入,但是当它尝试转到第二行时出现错误。这是我的代码:

  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

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

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

4

1 回答 1

1

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

于 2013-05-30T20:56:17.597 回答