VB.net을 사용하여 Access 데이터베이스에 여러 레코드를 삽입하는 가장 효율적인 방법은 무엇입니까?Access 데이터베이스에 여러 레코드 삽입
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
내가 거기에이 일을 훨씬 더 효율적 방법입니다하지만 난 그것을 찾을 수 없어 있으리라 믿고있어! 당신의 ValueList (문자열, 정수, 날짜를 두 배로?)에 저장된 데이터의 종류를 명확하지 않기 때문에
빠른 응답을 주셔서 감사합니다! 우선, 데이터는 문자열 정수와 복식의 혼합입니다. 귀하의 코드를 시도했지만 오류가 발생했습니다 : "속성 액세스는 속성에 할당하거나 값을 사용해야합니다." 'cmd.parameters [n] .value = val' 라인에 내가 뭘 잘못하고 있니? – doovers
내가 말했듯이 위의 예에서는 모든 필드 (FldX, fldY, FldZ)가 데이터베이스에 텍스트 형식으로 있다고 가정합니다. 따라서 모든 매개 변수는 코드에서 문자열 형식입니다. 이것이 사실이 아니라면 올바른 데이터 유형을 사용해야합니다. 대답에 예제를 추가합니다 – Steve
흠 ... 나는 여전히 같은 오류가 발생합니다 ... 예를 들어'cmd.Parameters [0] .Value = "test"'내가 올바르게 당신을 이해한다면 올바른 구문인가요? 잘못된? – doovers