0
將多個記錄插入Access數據庫與VB.net的最有效方法是什麼?將多個記錄插入Access DB
我有一個具有多個屬性的對象列表,它是INSERT
查詢的值,我想知道我可以將它們全部插入在一起,而不是循環遍歷對象列表,構建查詢字符串並執行查詢由非常緩慢的一個。
的我有什麼粗糙例如:
For Each Val In ValueList
ValueString = Val.X.ToString & ", "
ValueString += Val.Y.ToString & ", "
ValueString += Val.Z.ToString
SQLValueList.Add(ValueString)
Next
Dim cmd As OleDb.OleDbCommand
Dim strConnection As String
Dim strSql As String = Nothing
strConnection = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\db.accdb;" & _
"User ID=Admin;Password=;"
For Each ValueString As String In SQLValueList
strSql = "INSERT INTO Results (FldX, FldY, FldZ)" &
"VALUES (" & ValueString & ");"
cmd = New OleDb.OleDbCommand(strSql)
cmd.Connection = New OleDb.OleDbConnection(strConnection)
cmd.Connection.Open()
cmd.ExecuteNonQuery()
Next
我假設有這樣做的更好的,更有效的方式,但我一直沒能找到它!
感謝您的快速響應!首先,數據是字符串整數和雙精度的組合。我試過了你的代碼,但是我收到一個錯誤:「屬性訪問必須分配給屬性或使用它的值。」在'cmd.parameters [n] .value = val'行上我做錯了什麼? – doovers
正如我所說的,上面的例子假設你的所有字段(FldX,fldY,FldZ)都是數據庫中的文本類型。因此,每個參數都是代碼中的字符串類型。如果這不是真的,那麼你需要使用正確的數據類型。我將爲答案添加一個示例 – Steve
嗯,我仍然得到相同的錯誤...例如'cmd.Parameters [0] .Value =「test」'如果我正確理解你,這是正確的語法還是我錯誤? – doovers