问题描述
我正在尝试将数据从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})