从form1将数据插入到form2的datagridview中

问题描述

我正在尝试将数据从form1添加到form2,但是我的代码无法正常工作,每次运行都会出现错误“行索引超出范围,参数名行索引” 我在做什么错了

Public Sub Create_View()
        Dim BillnAddress As Object = New Odbc.OdbcCommand("Select [BillingAddress] From Customers Where [CustomerID] = '" & CustomerComboBox.SelectedValue.ToString & "'",PayrollHome.Con).ExecuteScalar
        Dim ItemName As String
        Dim ItemCode As Object
        Dim ItemDescription As Object
        Dim Qty As Integer
        Dim UnitPrice As Integer
        Dim TotalPrice As Double
        Dim i As Integer
        For i = 0 To DataGridView1.Rows.Count - 1
            With DataGridView1.Rows(i)
                ItemName = DataGridView1.Item("Product",i).Value.ToString
                ItemCode = New Odbc.OdbcCommand("Select [Item Code] From [Inventory Items] Where [Item Name] = '" & ItemName & "'",PayrollHome.Con).ExecuteScalar
                ItemDescription = New Odbc.OdbcCommand("Select [Description] From [Inventory Items] Where [Item Name] = '" & ItemName & "'",PayrollHome.Con).ExecuteScalar
                Qty = Val(DataGridView1.Item("Quantity",i).Value)
                UnitPrice = Val(DataGridView1.Item("UnitPrice",i).Value)
                TotalPrice = Val(DataGridView1.Item("Line_Total",i).Value)
                SalesInvoice.DataGridView1.Rows.Insert(Qty,ItemCode,ItemName,ItemDescription,UnitPrice,TotalPrice)
            End With
        Next
        '
        SalesInvoice.InvoiceNoLabel.Text = ReferenceTextBox.Text
        SalesInvoice.InvoiceDateLabel.Text = InvoiceDatePicker.Value
        SalesInvoice.CustomerIDLabel.Text = CustomerComboBox.SelectedValue
        SalesInvoice.BillingAddressBox.Text = BillnAddress
        SalesInvoice.DueDateBox.Text = DueDateTimePicker.Value
        SalesInvoice.OurOrderBox.Text = OrderTextBox.Text
        SalesInvoice.SalesRepBox.Text = RepComboBox.SelectedValue
        SalesInvoice.TotalBox.Text = FormatNumber(GrandTotalTextBox.Text,2)
    End Sub



Private sub View_invoice() Handles Button1.click
    Create_view
    SalesInvoice.show
End Sub

解决方法

不清楚是要添加行还是要在特定索引中插入行。 但是,请看一下如何添加或插入行(并查看与代码的区别):

 SalesInvoice.DataGridView1.Rows.Add({Qty,ItemCode,ItemName,ItemDescription,UnitPrice,TotalPrice})
 'OR 
 Dim rowIndex As Integer = 0
 SalesInvoice.DataGridView1.Rows.Insert(rowIndex,{Qty,TotalPrice})