在VB.net中太多参数'''

问题描述:

我试图从列表字段中保存多个数据,如何一次保存所有数据? 我已经尝试此代码在VB.net中太多参数'''

Dim detail As New Detail 
    Dim detailBr As New DetailBridge 
    Dim i As Integer 

    For i = 0 To lstProduct.Items.Count - 1 
     detail = detailBr.Insert(Convert.ToInt32(ddlGroup.SelectedValue), lstProduct.Items(i).Value) 'error was here 
    Next 

,但我得到了一个lstProduct.Items(i).Value错误的错误说

太多的参数“...”

我不知道错误是什么。

任何人都可以帮忙吗?谢谢你的建议。

UPDATE:detailBr是类和代码

Public Function Insert(ByVal GroupID As Integer, ByVal ProductID As String) As Boolean 
    Dim iResult As Integer 
    Dim arrColumn() As String = {"GroupID", "ProductID"} 
    Dim arrValue() As Object = {GroupID, ProductID} 

    oConn.Open() 
    Dim SQLString As String = GenInsert("DetailGroup", arrColumn, arrValue) 

    Try 
     iResult = SCommand.Execute(SQLString, oConn) 
    Catch ex As Exception 
     Throw ex 
    Finally 
     oConn.Close() 
    End Try 

    If iResult > 0 Then 
     Return True 
    Else 
     Return False 
    End If 
End Function 
+0

无论'detailBr'是什么,插入方法不需要2个参数 – Plutonix

+0

'detailBr'是类,已经更新我的问题。 – JTR

+0

什么是lstProduct,ListBox?它存储一个类型? – Plutonix

这里的问题是与GenInsert功能。它的最后两个参数是数组。

Dim arrColumn() As String = {"GroupID", "ProductID"} 
Dim arrValue() As Object = {GroupID, ProductID} 

Dim SQLString As String = GenInsert("DetailGroup", arrColumn, arrValue) 

的过程只能定义一个参数数组,并且它必须是在过程定义中的最后一个参数。 MSDN

在简单的话,你只能有一个参数作为GenInsert功能阵列或者arrColumn或arrValue

然而,解决您可以使用二维数组作为参数作为passing-two-dimensional-array-through-functionsMSDN: Arrays as Return Values and Parameters

您当前的问题
+1

'你可以只有一个参数作为数组'这不是真的。您只能将一个参数定义为“ParamArray”,但您可以将[多个参数定义为数组](https://dotnetfiddle.net/6OHpYD)。措辞令人困惑。这也不是OP *表示的行*他们得到的错误,但他们不是很清楚。 – Plutonix

+0

@Plutonix是的措辞是(直到现在)混淆,谢谢澄清。 – haraman