2015-10-20 63 views
0

我試圖從列表字段中保存多個數據,如何一次保存所有數據? 我已經嘗試此代碼在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

回答

0

這裏的問題是與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