OleDb接続を使用しているデータベースからVB.netを介してデータを取得し、データセットを取得してSQLiteデータベースに直接格納しようとしています。私が抱えている問題は、最初のデータベースからデータを取得することですが、Updateコマンドを実行した後、SQLiteデータベースを見ると、ゼロレコードで空になります。彼らは両方とも同じディレクトリに2つの異なるデータベースを指しています。私はexecptionsを取得しませんが、何も新しいSQLiteデータベースに取り込まれることはありません。それを引き起こす可能性のあることに対する示唆はありますか?OleDBデータベースからSQLiteデータベース
Dim ds As New DataSet
Dim SQL As String = "SELECT * FROM SOMETABLE"
Using conn As New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Deny None;Data Source=Data.mdb;Jet OLEDB:Engine Type=5"
conn.Open()
Using com As New OleDbCommand(SQL, conn)
Using da As OleDBDataAdapter = New OleDBDataAdapter(conn)
da.Fill(ds, "Employees")
da.Dispose()
End Using
com.Dispose()
End Using
conn.Close()
End Using
Using conn As New SqliteConnection("Data Source=Data.db;Version=3;"
conn.Open()
Using com As New SqliteCommand(SQL, conn)
Using da As SqliteDataAdapter = New SqliteDataAdapter(conn)
Using cmdBuilder As New SQLiteCommandBuilder(da)
da.TableMappings.Add("SOMETABLE", "SOMETABLE")
da.InsertCommand = cmdBuilder.GetInsertCommand()
da.Update(ds, "SOMETABLE")
End Using
da.Dispose()
End Using
com.Dispose()
End Using
conn.Close()
End Using
恐ろしいプルトニック。偶然、このアプローチが各行を読み込み、挿入コマンドを実行することと比較してどれだけ高速かを知っていますか?これは、バルク挿入ではなく、一度に1行ずつデータベースサイズが少しずつ増加することに基づいています。 –
私はパフォーマンスについてはわかりませんが、バルクは関係ありません。 DAの魔法は、変更された行数に必要なすべてのINSERT、DELETE、およびUPDATESを実行でき、少し遅くなる可能性があることです。これは1つの操作だけが存在するため、非常に速くなければなりません。 MSDNはプロセスの順序を説明します – Plutonix