вставить объект списка в качестве аргумента в string.format

Я пытаюсь передать список в string.format в качестве параметров инструкции SQL, но получаю следующую ошибку:

Индекс (отсчитываемый от нуля) должен быть больше или равен нулю и меньше размера списка аргументов.

Я знаю, что могу заставить его работать, когда перечисляю каждого отдельного члена списка в качестве аргументов, но мне интересно, есть ли ярлык, чтобы я мог просто использовать объект списка в качестве единственного аргумента.

Спасибо!

Public Sub updateSecurityMasterTable(ByVal params As Dictionary(Of String, String))

    Dim updateList As New List(Of String)

    Try
        updateList.Add(params.Item("ticker"))
        updateList.Add(String.Empty)
        updateList.Add(params.Item("asset_class"))
        updateList.Add(params.Item("sub_class"))
        updateList.Add(params.Item("asset_type"))
        updateList.Add(params.Item("current_price"))
        updateList.Add(params.Item("market_cap"))
        updateList.Add(params.Item("dividend_yield"))
        updateList.Add(params.Item("pe_ratio"))
        updateList.Add(params.Item("eps"))
        updateList.Add(params.Item("sector"))
    Catch ex As Exception
        Throw ex
    End Try


    Dim strSql As New StringBuilder

    strSql.Append("INSERT INTO SecurityMaster ")
    strSql.Append("(ticker, cusip, asset_class, sub_class, asset_type, current_price, market_cap, dividend_yield, pe_ratio, eps, sector) ")
    strSql.Append(String.Format("VALUES (N'{0}', N'{1}', N'{2}', N'{3}', N'{4}', N'{5}', N'{6}', N'{7}', N'{8}', N'{9}', N'{10}')", updateList))

    Try
        If checkConnection() Then
            'Do Nothing
        Else
            Me.createConnection()
        End If

        Using cmdExe As New SqlCeCommand(strSql.ToString(), conn)
            cmdExe.ExecuteNonQuery()
        End Using
    Catch ex As Exception
        Throw ex
    End Try

End Sub

person Lance Collins    schedule 10.02.2012    source источник


Ответы (1)


Пытаться:

String.Format("VALUES (N'{0}', N'{1}', N'{2}', N'{3}', N'{4}', N'{5}', N'{6}', N'{7}', N'{8}', N'{9}', N'{10}')", updateList.ToArray)
person pete    schedule 10.02.2012
comment
@Pete, который тоже помог мне с чем-то немного другим, но связанным :). Та! - person Richard Griffiths; 11.02.2013