1
我想傳遞的String.Format作爲參數傳遞到SQL語句的列表,但我得到了下面的錯誤說法:插入列表中的對象作爲的String.Format
索引(從零開始)必須大於大於或等於零且小於參數列表的大小。
我知道,當我列出每個單獨的列表成員作爲參數,我可以得到它的工作,但我想知道是否有一個快捷方式,所以我可以只使用列表對象作爲唯一的參數。
謝謝!
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
感謝皮特!這工作。 – 2012-02-10 04:20:30
@Pete幫助我解決了一些稍微不同的問題,但是相關:)。 TA! – 2013-02-11 17:21:56